如何使用Maven在Firefox中运行Selenium WebDriver测试用例?

时间:2016-10-01 17:56:36

标签: java maven selenium firefox selenium-webdriver

我需要使用带有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防火墙已禁用。

您有任何想法,我该如何解决问题?

1 个答案:

答案 0 :(得分:1)

Selenium2Mozilla 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本身会从默认位置找到它。