2

我有一组在 Firefox 和 Chrome 中运行良好的自动化,我也想启动一个 IEDriver 实例。

我已经按照Selenium 的 Google Code wiki设置了 IEDriver ,并使用了正确的路径(如果我更改路径,我会得到一个不同的异常,所以它绝对是正确的)。但由于某种原因,它仍然无法启动,只是超时。

启动它的代码(最后一行抛出异常):

        File ieDriver = new File("C:/Users/whatever/path/IEDriverServer.exe");
        System.setProperty("webdriver.ie.driver", ieDriver.getAbsolutePath());
        WebDriver ie = new InternetExplorerDriver();

例外是:

Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: '2.33.0', revision: '4ecaf82108b2a6cc6f006aae81961236eba93358', time: '2013-05-22 12:00:17'
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_21'
Driver info: driver.version: InternetExplorerDriver
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:216)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:201)
    at org.openqa.selenium.ie.InternetExplorerDriver.run(InternetExplorerDriver.java:184)
    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:174)
    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:143)
    at uk.co.know.kiteTest.WebDriverManager.<init>(WebDriverManager.java:52)
    at uk.co.know.kiteTest.RunAutomations.main(RunAutomations.java:13)
Caused by: org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start.
Build info: version: '2.33.0', revision: '4ecaf82108b2a6cc6f006aae81961236eba93358', time: '2013-05-22 12:00:17'
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_21'
Driver info: driver.version: InternetExplorerDriver
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:165)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:62)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:527)
    ... 7 more
Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:38622/status] to be available after 20014 ms
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:104)
    at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:163)
    ... 9 more
Caused by: com.google.common.util.concurrent.UncheckedTimeoutException: java.util.concurrent.TimeoutException
    at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:143)
    at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:79)
    ... 10 more
4

7 回答 7

2

我遇到了同样的错误,然后发现了这个问题。在我的例子中,结果证明我的系统上有 64 位版本的 IEDriver.exe,但我使用的是 32 位 Windows 平台。所以这个错误表明操作系统无法执行驱动程序。我尝试直接在命令提示符下运行驱动程序,以查看实际上 32 位操作系统没有将 64 位驱动程序 exe 识别为可执行程序。

获得正确的 32 位 IEDriver.exe 解决了我的问题。

于 2014-02-19T13:47:52.483 回答
2

带有 Chrome 的 Selenium WebDriver,问题:

(org.openqa.selenium.remote.UnreachableBrowserException) solution
Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: '2.35.0', revision: '8df0c6b', time: '2013-08-12 15:43:19'
System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_40'
Driver info: driver.version: ChromeDriver

如果您遇到上述问题,请转到该chromedriver.exe位置并尝试执行exe。如果您能够执行 exe,则下面的代码将起作用。否则,这将是 chromedriver 文件夹的权限问题。更改文件夹位置或提供文件夹权限,然后双击 chromedriver.exe。

解决方案:

  System.setProperty("webdriver.chrome.driver", "C:/Driver/chromedriver.exe");
  System.out.println(System.getProperty("webdriver.chrome.driver"));

  WebDriver driver3 = new ChromeDriver();
于 2014-02-11T07:02:04.693 回答
2

转到主机 (C:\Windows\system32\drivers\etc) 并确保您拥有正确的这一行:127.0.0.1 localhost

于 2015-07-03T08:20:49.187 回答
2

尝试通过 BrowserStack 为移动设备执行 Selenium 脚本时遇到类似的异常。并且经常发现这个异常被抛出。最终意识到涉及虚拟机,模拟器需要时间来启动,从而导致UnreachableBrowserException

通过设置重试次数(RetryCount)并多次尝试(retryAttempt)来检查远程 WebDriver 的可用性,编写了下面的代码来处理这个问题。

while(retryAttempt<=retryCount){
            try{

                WebDriver driver = new RemoteWebDriver(new URL(URL), caps);
                return driver;
            }
            catch(UnreachableBrowserException e){
                Thread.sleep(10000);
                if(retryAttempt>retryCount){
                    logger.error("Remote Web Driver cannot be reached at this moment");
                }
            }
        }
于 2015-08-24T10:48:45.140 回答
1

我遇到过同样的问题。这为我修复了它:

DesiredCapabilities capabilitiesIE = DesiredCapabilities.internetExplorer();
capabilitiesIE.setCapability(
    InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
WebDriver driver = new InternetExplorerDriver(capabilitiesIE);
于 2013-11-01T11:08:22.560 回答
1

在我看来,您使用了不正确的驱动程序初始化。尝试我项目中的一段代码:

File file = new File("C:/Selenium/iexploredriver.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
WebDriver driver = new InternetExplorerDriver();
于 2013-06-12T14:40:21.050 回答
0

如果您遇到此异常,只需下载新的 chrome 驱动程序并在您的项目中提供。而已。为我工作:)

于 2018-02-18T16:44:32.427 回答