【问题标题】:Webdriver exception: "chrome not reachable"Webdriver 异常:“chrome 无法访问”
【发布时间】:2015-04-06 11:47:49
【问题描述】:

我在 ubuntu 服务器中运行 selenium 测试用例,该服务器基本上在 firefox 和 chrome 中运行测试用例。 Firefox 启动和测试用例运行成功但 chrome 抛出异常:

*****下面是stacktrace的sn-p:*****

在端口 21549 上启动 ChromeDriver (v2.8.240825)

PAC 支持被禁用,因为没有系统实现

测试 IntegrationTest.AdminUserelementscheck 失败:

org.openqa.selenium.WebDriverException: chrome 无法访问 (驱动信息:chromedriver=2.8.240825,platform=Linux 2.6.32-431.el6.x86_64 x86_64)(警告:服务器未提供任何堆栈跟踪信息) [错误] 命令持续时间或超时:20.83 秒


嗨,下面是我的代码的小sn-p:

public class IntegrationTest {

private static final String configFile="test.properties";

private final String FIREFOX="firefox";

private final String CHROME="chrome";

private final String PHANTOMJS="phantomjs";

private final String BROWSERNAME="browser";

private static Properties props = new Properties();

public WebDriver webDriver;

private static Configuration additionalConfigurations;


@BeforeClass

public static void setUp() throws IOException, SQLException{

props.load(IntegrationTest.class.getResourceAsStream("/" + configFile));
        }

@test

public void AdminUserelementscheck() throws SQLException, IOException {

String[] browsers = props.getProperty(BROWSERNAME).split(",");

System.out.println("Number of browsers specified in conf:"+props.getProperty(BROWSERNAME));

for(String browser:browsers){

System.out.println("Browser currently processing:"+browser);

if(browser.equalsIgnoreCase(FIREFOX))

webDriver = new FirefoxDriver();

else if(browser.equalsIgnoreCase(CHROME))

webDriver = new ChromeDriver();

else

webDriver = new PhantomJSDriver();

running(testServer(3333,fakeApplication()),webDriver, new Callback<TestBrowser>() {


********* LOGIN AND ASSERTION STATMENTS*******************

browser.quit()

}

});

}

【问题讨论】:

  • 这也可能是您的 docker 容器和远程设备/主机之间的端口转发问题。

标签: selenium-webdriver docker webdriver selenium-chromedriver chrome-web-driver


【解决方案1】:

这可能是因为 Chrome 也在使用 unix 容器来运行。如果您希望它在 docker 中运行,请传递 docker run 命令

--特权

否则您可以使用

启动 Chrome

--无沙盒

【讨论】:

  • 非常感谢,成功了。
  • @Conor @Immanuel Fredrick:我把这个命令放在哪里?请以上述为例帮助理解。
  • 好的,我尝试将它传递给 chrome args,但它说在这种情况下环境不可用。
  • 另外,你需要增加dev/shm github.com/elgalu/docker-selenium/issues/…
  • 依赖--no-sandbox 进行自动化测试是否安全?
【解决方案2】:

我遇到过类似的问题。我在本地运行我的 Selenium 测试,突然出现“webdriver exception chrome not reachable”错误。

问题是我的常规 chrome 浏览器中的标签页已经太多了。在感到沮丧之后,我关闭了几个标签,突然它起作用了。我不确定标签是否有一定的限制,但是如果有人遇到同样的问题,请尝试一下。

【讨论】:

  • 下次我会尽量直截了当:)
【解决方案3】:

您的 chrome 驱动程序似乎很旧。尝试从下面下载最新的日期,如果您遇到任何新错误,请报告。

http://chromedriver.storage.googleapis.com/index.html?path=2.14/

【讨论】:

  • 我尝试了从 2.7 到 2.14 的大部分 chromedriver 版本。它抛出相同的错误
  • 需要注意的是整个设置运行在一个docker容器内
【解决方案4】:

还要确保 PATH 环境变量具有 chromedriver 的路径。

【讨论】:

  • 我将 chromedriver 可执行文件放置在系统环境路径中。它能够选择 chromedriver 但不能启动它。
  • 在调用脚本前是否配置了XServer Display参数如DISPLAY=:0?
猜你喜欢
  • 1970-01-01
  • 2019-12-06
  • 2017-10-30
  • 2021-02-11
  • 1970-01-01
  • 1970-01-01
  • 2023-01-07
  • 2016-03-16
  • 1970-01-01
相关资源
最近更新 更多