使用MarionetteDriver

时间:2016-09-01 08:43:49

标签: selenium firefox firefox-marionette

环境 - Firefox 48.0.2和Selenium 3.0.0-beta2版本,我收到以下错误 -

  

1472824777259 Marionette INFO在61096号港口收听[儿童5848]   警告:管道错误:109:文件   C:/builds/moz2_slave/m-rel-w32-00000000000000000000/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc,   第343行

     

[Child 4048] ### !!! ABORT:中止通道错误:文件   C:/builds/moz2_slave/m-rel-w32-00000000000000000000/build/src/ipc/glue/MessageChannel.cpp,   第2046行“main”中的异常   org.openqa.selenium.remote.UnreachableBrowserException:错误   与远程浏览器通信。它可能已经死了。构建信息:   版本:'3.0.0-beta2',修订版:'2aa21c1',时间:'2016-08-02   15:03:28 -0700'系统信息:主机:'VM7-JDB-068',ip:'10 .60.88.67',   os.name:'Windows 7',os.arch:'amd64',os.version:'6.1',   java.version:'1.8.0_51'驱动程序信息:driver.version:RemoteWebDriver   功能[{rotating = false,raisesAccessibilityExceptions = false,   marionette = true,appBuildId = 20160823121617,version =,platform = XP,   proxy = {},command_id = 1,specificationLevel = 0,acceptSslCerts = false,   browserVersion = 48.0.2,platformVersion = 6.1,   XULappId = {ec8030f7-c20a-464f-9b0e-13a3a9e97384},browserName = Firefox,   takesScreenshot = true,takeElementScreenshot = true,   platformName = Windows_NT,device = desktop}]会话ID:   499ab4bb-406d-4252-8b5d-808b22831595 at   org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:670)     在   org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:706)     在   org.openqa.selenium.remote.RemoteWebDriver.quit(RemoteWebDriver.java:531)     在firefox_java.sample.main(sample.java:19)引起:   java.lang.IllegalStateException:Unix上不能使用UnixUtils     在   org.openqa.selenium.os.ProcessUtils.getProcessId(ProcessUtils.java:188)     在   org.openqa.selenium.os.UnixProcess $ SeleniumWatchDog.getPID(UnixProcess.java:222)     在   org.openqa.selenium.os.UnixProcess $ SeleniumWatchDog.access 300 $(UnixProcess.java:201)     在org.openqa.selenium.os.UnixProcess.destroy(UnixProcess.java:132)     在org.openqa.selenium.os.CommandLine.destroy(CommandLine.java:155)     在   org.openqa.selenium.remote.service.DriverService.stop(DriverService.java:196)     在   org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:94)     在   org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:649)     ...还有3个关于driver.quit();

的信息

这是我的Java代码:

 String marionetteDriverLocation = "\\Lib\\geckodriver.exe";  
 System.setProperty("webdriver.gecko.driver", marionetteDriverLocation);  
 WebDriver driver = new FirefoxDriver();  
 driver.get("https://www.google.co.in");

 driver.quit();  
你能帮忙吗?     感谢

2 个答案:

答案 0 :(得分:0)

您已使用MarionetteDriver但初始化FirefoxDriver()

请尝试使用WebDriver driver = new MarionetteDriver(cap);它应该可行。

答案 1 :(得分:0)

以下是我刚刚尝试过的工作副本。如果它不起作用,那么您使用的selenium jar或gecodriver.exe应该存在问题。

public class MarrionateTest {
    public static void main(String[] args) {
        System.setProperty("webdriver.gecko.driver", System.getProperty("user.dir") + "/BrowserDrivers/geckodriver.exe");
        DesiredCapabilities cap = DesiredCapabilities.firefox();
        cap.setCapability("marionette", true);
        WebDriver driver = new MarionetteDriver(cap);
        driver.get("http://www.seleniumhq.org");
        driver.close();
    }
}