【问题标题】:Error on setting DesiredCapabilities for SauceLabs execution为 SauceLabs 执行设置 DesiredCapabilities 时出错
【发布时间】:2015-01-21 03:25:51
【问题描述】:

以下是根据https://saucelabs.com/platforms中列出的配置配置的。

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platform", "Windows 8.1");
capabilities.setCapability("browserName", "firefox");
capabilities.setCapability("version", "33.0.");
capabilities.setCapability("name", "Bamboo Job");
driver = new RemoteWebDriver(new URL("http://user:key@localhost:4445/wd/hub"),capabilities);

以上代码导致如下错误:

java.lang.IllegalArgumentException: No enum constant org.openqa.selenium.Platform.Windows 8.1
at java.lang.Enum.valueOf(Enum.java:236)
at org.openqa.selenium.Platform.valueOf(Platform.java:30)
at org.openqa.selenium.remote.DesiredCapabilities.setCapability(DesiredCapabilities.java:168)
at com.automation.tool.internal.InitiateBrowser.getBrowser(InitiateBrowser.java:17)
at com.automation.tool.Automation_Tool.(Automation_Tool.java:36)
at ui_automation.Login_Validation.setUp(Login_Validation.java:19)

但是当我在平台枚举中提供值时,整个套件都会通过。例如:- WINDOWS、WIN8_1 但是使用这种方法无法提及 Mac 或 Linux 中的版本。

请告诉我如何解决此错误。

【问题讨论】:

    标签: java selenium webdriver saucelabs


    【解决方案1】:

    platform 设置的内容不是由 Selenium 决定的,而是由 Sauce Labs 决定的。他们有一个whole page 专门告诉你该放什么。您可以选择平台、浏览器、浏览器版本,它会准确告诉您您需要什么。

    无论如何,Linux 的platform 字符串是字符串"Linux"。对于 Mac,您有多种选择,具体取决于您想要的操作系统版本。我看到的是:

    "OS X 10.10"
    "OS X 10.9"
    "OS X 10.8"
    "OS X 10.6"
    

    【讨论】:

    • 这让我彻底明白了... capabilities.setCapability("platform", "WINDOWS");能力.setCapability("os", "Windows 8.1");
    • 另外,尽量不要直接为功能指定字符串名称/值对。这些可能在每个实施版本之间有所不同。尝试caps.setCapability(CapabilityType.PLATFORM, Platform.WINDOWS); 之类的方法,以确保您只使用正在使用的 selenium 版本支持的那些功能。
    • @shri046 你有推荐这个的来源吗,或者你只是想出了自己的规则?两个观察结果:a) 我在回答中给出的正是 Sauce Labs 建议您访问他们的服务的方式。 b)我记得,平台的命名方式完全由远程服务决定,而不是由 Selenium 客户端决定。 Sauce Labs 可能要求将 Linux 平台命名为“Potato”。
    • @Louis 我的个人喜好,不是规则。开篇文章中出现异常的原因是因为他/她可能正在使用不支持这些平台的 selenium webdriver 版本。我看到它的方式 SauceLabs 的硒 webdriver 特定功能列表是由Platform 驱动的。与标准 CapabilityType 常量相同。
    【解决方案2】:

    这是 Selenium 2.44 的“功能”。请参阅issue 8083。您应该使用 Seleniun 2.43.1。

    【讨论】:

      猜你喜欢
      • 2021-12-04
      • 2018-05-07
      • 2015-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-28
      • 1970-01-01
      相关资源
      最近更新 更多