java - webdriver 3 beta2 无法关闭窗口

标签 java selenium-webdriver geckodriver

我希望更新到 selenium webdriver 3 beta 2 以测试兼容性。
Selenium WebDriver:3.0.0-beta2
火狐浏览器:48.0
操作系统:Windows 7
代码:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class GeckDriverTest {

    public static void main(String[] args) {
        System.setProperty("webdriver.gecko.driver", "src/test/resources/wires.exe");
//      System.setProperty("webdriver.firefox.marionette", "src/test/resources/geckodriver.exe");
//      System.setProperty("webdriver.gecko.driver", "src/test/resources/geckodriver.exe");
        DesiredCapabilities cap = DesiredCapabilities.firefox();
        cap.setCapability("marionette", true);
        cap.setCapability("firefox_binary", "firefoxbinarypath");
        WebDriver browser=new FirefoxDriver(cap);
        browser.get("http://www.seleniumhq.org/");
        browser.findElement(By.linkText("Download")).click();
        browser.close();
    }
}


但浏览器没有关闭。
如果我使用 browser.quit() 它会关闭,但会抛出错误:

1472391805470 Marionette INFO Listening on port 56555 1472391808818 Marionette INFO startBrowser 95d29b68-b0bb-487a-915c-4896cfaa09ee 1472391808831 Marionette INFO sendAsync 95d29b68-b0bb-487a-915c-4896cfaa09ee 1472391809520 Marionette INFO sendAsync 95d29b68-b0bb-487a-915c-4896cfaa09ee 1472391809653 Marionette INFO sendAsync 95d29b68-b0bb-487a-915c-4896cfaa09ee 1472391827467 Marionette INFO sendAsync 95d29b68-b0bb-487a-915c-4896cfaa09ee 1472391827483 Marionette INFO sendAsync 95d29b68-b0bb-487a-915c-4896cfaa09ee [Child 6088] ###!!! ABORT: Aborting on channel error.: file c:/builds/moz2_slave/m-rel-w64-00000000000000000000/build/src/ipc/glue/MessageChannel.cpp, line 2046 Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Error communicating with the remote browser. It may have died. Build info: version: 'unknown', revision: '31c43c8', time: '2016-08-02 21:57:56 -0700' System info: host: 'mrunal-laptop', ip: '192.168.56.1', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_45' Driver info: driver.version: RemoteWebDriver Capabilities [{rotatable=false, raisesAccessibilityExceptions=false, marionette=true, appBuildId=20160726073904, version=, platform=XP, proxy={}, command_id=1, specificationLevel=0, firefox_binary="firefoxbinarypath", acceptSslCerts=false, browserVersion=48.0, platformVersion=6.1, XULappId={ec8030f7-c20a-464f-9b0e-13a3a9e97384}, browserName=Firefox, takesScreenshot=true, takesElementScreenshot=true, platformName=Windows_NT, device=desktop}] Session ID: 95d29b68-b0bb-487a-915c-4896cfaa09ee at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:670) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:706) at org.openqa.selenium.remote.RemoteWebDriver.quit(RemoteWebDriver.java:531) at practise.GeckDriverTest.main(GeckDriverTest.java:20) Caused by: java.lang.IllegalStateException: UnixUtils may not be used on Windows at org.openqa.selenium.os.ProcessUtils.getProcessId(ProcessUtils.java:188) at org.openqa.selenium.os.UnixProcess$SeleniumWatchDog.getPID(UnixProcess.java:222) at org.openqa.selenium.os.UnixProcess$SeleniumWatchDog.access$300(UnixProcess.java:201) at org.openqa.selenium.os.UnixProcess.destroy(UnixProcess.java:132) at org.openqa.selenium.os.CommandLine.destroy(CommandLine.java:155) at org.openqa.selenium.remote.service.DriverService.stop(DriverService.java:196) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:94) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:649) ... 3 more

Firefox Browser throwing error on using quit

最佳答案

尝试创建一个新的DesiredCapability实例。

 DesiredCapabilities capabilities = DesiredCapabilities.firefox();

而不是

 cap.setCapability("marionette", true);
 cap.setCapability("firefox_binary", "firefoxbinarypath");

关于java - webdriver 3 beta2 无法关闭窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39191971/

相关文章:

java - 用于许多测试的 geckodriver - Java

java - CPLEX (12.5) Java API,将 LP 解析为 IP

java - 数组列表的数组列表作为关系的表示

java - 如何在 Spring 中向请求上下文添加错误而不是抛出异常

Python、Selenium、下载所有 MIME 类型

python - 在 Python 中使用 Selenium 访问 Tor

python - 使用 selenium webdriver 获取浏览器版本

JavaFX 启动第二个 GUI

ios - Python 3 错误 : ImportError: No module named selenium

java - 当元素属性不存在时,使用 Java 在 Selenium WebDriver 中按 ENTER 键