我需要使用带有Maven的FirefoxDriver创建简单的自动测试。
摘自pom.xml:
@BeforeTest
public void StartBrowser_NavURL() {
capability = DesiredCapabilities.firefox();
capability.setCapability("platform", Platform.ANY);
capability.setCapability("binary", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
driver = new FirefoxDriver(capability);
driver.manage().window().maximize();
}
@AfterTest
public void CloseBrowser() {
driver.quit();
}
@Test
public void testToCompareDoubles() {
driver.get("http://www.google.com");
}
测试用例:
mvn -test
运行测试执行命令后
Mozilla Firefox version: 49.0.1
我收到以下例外:
org.openqa.selenium.WebDriverException:无法连接到端口7055上的二进制FirefoxBinary(C:\ Program Files(x86)\ Mozilla Firefox \ firefox.exe);过程输出如下:为LightweightThemeManager提供关闭阻止程序
System.out.println("How many numbers would you like to add?");
Scanner adds = new Scanner(System.in);
int addsput = adds.nextInt();
int sum = 0;
for(int i = 0; i < addsput; i++){
sum += adds.nextInt();
}
System.out.println(sum);
(它应该与Selenium Webdriver兼容)。 &#34;主机&#34;文件是空的。 Windows防火墙已禁用。
您有任何想法,我该如何解决问题?
答案 0 :(得分:1)
Selenium2
和Mozilla Firefox version: 49.0.1
之间似乎存在不兼容问题。
实际上Mozilla
has launched executable geckodriver
to support latest firefox >= v47
就像其他使用selenium的驱动程序一样。
You need to download latest geckodriver executable first,将下载的zip文件解压缩到您系统的任何位置,并使用变量System
将可执行文件本身的可执行文件路径设置为webdriver.gecko.driver
。
Now run selenium script to launch Mozilla Firefox
using marionette
如下: -
System.setProperty("webdriver.gecko.driver", "path/to/geckodriver.exe");
//Now you can Initialize marionette driver to launch firefox
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
WebDriver driver = new MarionetteDriver(capabilities); //for selenium 3 use new FirefoxDriver(capabilities);
注意: - 如果Mozilla Firefox
安装在系统的默认位置,则无需向selenium脚本提供明确的二进制路径,selenium本身会从默认位置找到它。