Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “线程中的异常”;“主要”;org.openqa.selenium.webdriverxception:geckodriver升级后等待Firefox启动45秒超时_Java_Selenium_Firefox_Selenium Webdriver_Geckodriver - Fatal编程技术网

Java “线程中的异常”;“主要”;org.openqa.selenium.webdriverxception:geckodriver升级后等待Firefox启动45秒超时

Java “线程中的异常”;“主要”;org.openqa.selenium.webdriverxception:geckodriver升级后等待Firefox启动45秒超时,java,selenium,firefox,selenium-webdriver,geckodriver,Java,Selenium,Firefox,Selenium Webdriver,Geckodriver,我用java编写了下面的代码,只是为了打开firefox并重定向到gmail.com链接,但在重定向之前它似乎超时了。我已经检查了stackoverflow中的解决方案,发现其他人也面临同样的问题。他/她已经升级了geckodriver,该geckodriver被回溯,之后它成功地重定向到他/她的链接。在看到我已经检查了geckodriver、firefox和selenium的版本之后,似乎一切都更新了。geckodriver的版本是v0.20.1,firefox的版本是60.0.2,selen

我用java编写了下面的代码,只是为了打开firefox并重定向到gmail.com链接,但在重定向之前它似乎超时了。我已经检查了stackoverflow中的解决方案,发现其他人也面临同样的问题。他/她已经升级了geckodriver,该geckodriver被回溯,之后它成功地重定向到他/她的链接。在看到我已经检查了geckodriver、firefox和selenium的版本之后,似乎一切都更新了。geckodriver的版本是v0.20.1,firefox的版本是60.0.2,selenium的版本是3.12.0。我写的代码是:

System.setProperty("webdriver.gecko.driver", "C:\\Users\\MI SERVICE\\Downloads\\geckodriver.exe");
FirefoxOptions capa = new FirefoxOptions();
capa.setCapability("marionette", false);
WebDriver driver = new FirefoxDriver(capa);
driver.navigate().to("https://www.gmail.com");
driver.quit();
例外情况导致:

Exception in thread "main" org.openqa.selenium.WebDriverException: Timed out waiting 45 seconds for Firefox to start.
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T15:15:03.216Z'
System info: host: 'DESKTOP-3P379LK', ip: '192.168.0.105', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '10.0.1'
Driver info: driver.version: FirefoxDriver
    at org.openqa.selenium.firefox.XpiDriverService.waitUntilAvailable(XpiDriverService.java:132)
    at org.openqa.selenium.firefox.XpiDriverService.start(XpiDriverService.java:117)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:207)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:130)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:125)
    at firefoxScripts.MyFirstTestCase.main(MyFirstTestCase.java:17)
Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:36845/hub/status] to be available after 45002 ms
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:100)
    at org.openqa.selenium.firefox.XpiDriverService.waitUntilAvailable(XpiDriverService.java:130)
    ... 7 more
Caused by: java.util.concurrent.TimeoutException
    at java.base/java.util.concurrent.FutureTask.get(Unknown Source)
    at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:148)
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:75)
    ... 8 more
线程“main”org.openqa.selenium.WebDriverException中的异常:等待Firefox启动45秒超时。 构建信息:版本:“3.12.0”,修订版:“7c6e0b3”,时间:“2018-05-08T15:15:03.216Z” 系统信息:主机:'DESKTOP-3P379LK',ip:'192.168.0.105',os.name:'Windows 10',os.arch:'amd64',os.version:'10.0',java.version:'10.0.1' 驱动程序信息:Driver.version:FirefoxDriver 位于org.openqa.selenium.firefox.XpiDriverService.waitUntilavable(XpiDriverService.java:132) 位于org.openqa.selenium.firefox.XpiDriverService.start(XpiDriverService.java:117) 位于org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79) 位于org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543) 位于org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:207) 位于org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:130) 位于org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:125) 位于firefoxScripts.MyFirstTestCase.main(MyFirstTestCase.java:17) 原因:org.openqa.selenium.net.UrlChecker$TimeoutException:等待时超时[http://localhost:36845/hub/status]45002毫秒后可用 位于org.openqa.selenium.net.UrlChecker.waitUntilavable(UrlChecker.java:100) 位于org.openqa.selenium.firefox.XpiDriverService.waitUntilavable(XpiDriverService.java:130) ... 还有7个 原因:java.util.concurrent.TimeoutException 位于java.base/java.util.concurrent.FutureTask.get(未知源) 位于com.google.common.util.concurrent.SimpleTimel.callWithTimeout(SimpleTimel.java:148) 位于org.openqa.selenium.net.UrlChecker.waitUntilavable(UrlChecker.java:75) ... 8个以上 当您使用Selenium v3.12.0时,GeckoDriver是v0.20.1,Firefox v60.0.2,您必须强制使用默认配置木偶。由于您已将
木偶
强制设置为,因此您会看到以下错误:

org.openqa.selenium.WebDriverException: Timed out waiting 45 seconds for Firefox to start.
解决方案: 有两种方法可以解决您的问题,如下所示:

System.setProperty("webdriver.gecko.driver", "C:\Users\MI SERVICE\Downloads\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.navigate().to("https://www.gmail.com");
driver.quit();
System.setProperty("webdriver.gecko.driver", "C:\Users\MI SERVICE\Downloads\geckodriver.exe");
FirefoxOptions capa = new FirefoxOptions();
capa.setCapability("marionette", true);
WebDriver driver = new FirefoxDriver(capa);
driver.navigate().to("https://www.gmail.com");
driver.quit();
  • 使用默认配置(木偶设置为true),如下所示:

    System.setProperty("webdriver.gecko.driver", "C:\Users\MI SERVICE\Downloads\geckodriver.exe");
    WebDriver driver = new FirefoxDriver();
    driver.navigate().to("https://www.gmail.com");
    driver.quit();
    
    System.setProperty("webdriver.gecko.driver", "C:\Users\MI SERVICE\Downloads\geckodriver.exe");
    FirefoxOptions capa = new FirefoxOptions();
    capa.setCapability("marionette", true);
    WebDriver driver = new FirefoxDriver(capa);
    driver.navigate().to("https://www.gmail.com");
    driver.quit();
    
  • 或者您可以显式地将木偶设置为true,如下所示:

    System.setProperty("webdriver.gecko.driver", "C:\Users\MI SERVICE\Downloads\geckodriver.exe");
    WebDriver driver = new FirefoxDriver();
    driver.navigate().to("https://www.gmail.com");
    driver.quit();
    
    System.setProperty("webdriver.gecko.driver", "C:\Users\MI SERVICE\Downloads\geckodriver.exe");
    FirefoxOptions capa = new FirefoxOptions();
    capa.setCapability("marionette", true);
    WebDriver driver = new FirefoxDriver(capa);
    driver.navigate().to("https://www.gmail.com");
    driver.quit();
    

我已经有两天出现这个错误,我的解决方案已经准备好了。Plataform将Plataform.ANY或Plataform.Windows放在一起,因为Plataform.WIN10不起作用,木偶没有必要,我添加了neether,只起作用。我希望这对其他人有所帮助:

public class Main {
    public static RemoteWebDriver driver;

    public static void main(String[] args) throws MalformedURLException {
        System.setProperty("webdriver.gecko.driver", "D:/Lib/geckodriver.exe");
        DesiredCapabilities desiredCapabilities = new DesiredCapabilities().firefox();
        desiredCapabilities.setPlatform(Platform.ANY);
        desiredCapabilities.setBrowserName("firefox");

        driver = new RemoteWebDriver(new URL("http://172.20.19.182:5557/wd/hub"), desiredCapabilities);
        driver.navigate().to("http://www.google.com");
        driver.findElementByName("q").sendKeys("execute automation");
        driver.findElementByName("q").sendKeys(Keys.ENTER);
        driver.close();
        // write your code here
    }
}