我正在尝试运行一个简单的测试,看看我是否可以使用以下功能运行。
OS: Windows 7
Browser: Firefox
Browser Version: 33
这是我的代码:
import static org.junit.Assert.*;
import java.net.URL;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
public class Tests {
private WebDriver driver;
@Before
public void setUp() throws Exception {
// Choose the browser, version, and platform to test
DesiredCapabilities caps = DesiredCapabilities.firefox();
caps.setCapability("platform", "Windows 7");
caps.setCapability("version", "33");
caps.setCapability("browserName", "");
// Create the connection to Sauce Labs to run the tests
this.driver = new RemoteWebDriver(
new URL("http://<axxxxxx>:<5xxxxx@ondemand.saucelabs.com:80/wd/hub"),
caps);
}
@Test
public void webDriver() throws Exception {
// Make the browser get the page and check its title
driver.get("http://www.amazon.com/");
assertEquals("Amazon.com: Online Shopping for Electronics, Apparel, Computers, Books, DVDs & more", driver.getTitle());
}
@After
public void tearDown() throws Exception {
driver.quit();
}
}
当我运行此测试时,看起来我无法使用Windows 7:
java.lang.IllegalArgumentException: No enum constant org.openqa.selenium.Platform.Windows 7
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)
我很困惑。网站http://docs.seleniumhq.org/about/platforms.jsp表示支持Windows 7。我在哪里弄错了?
答案 0 :(得分:2)
您在Selenium 2.44.0 中遇到了错误。正如Sauce Labs知识库中this article所指出的,您有两种选择:
根据文章的首选选项是恢复为2.43.0。
您选择的选项:使用Platform
枚举中的一个值而不是String
。 (事实证明,至少在一段时间内不可能使用此选项,但Sauce Labs人员修改了他们的结束以允许它。)
文章还指出,下一版Selenium将有必要的解决方案。
答案 1 :(得分:1)
定义以下功能解决了我的问题。在平台上观察VISTA。
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("version", "33");
capabilities.setCapability("platform", Platform.VISTA);
capabilities.setCapability("name", "Windows7Firefox33");