我只是用 Selenium 迈出了第一步。我成功设置了一个测试(Firefox 驱动程序),在我的 Jenkins 上的 Selenium 网格上运行(使用 Jenkins-Selenium-Grid 插件)。我还在运行 Jenkins 的机器(Server2003 64 位)上安装了 Chromdriver 插件和 Chrome 本身。
Chrome 已为所有用户安装(位于 C:\Program Files (x86)\Google\Chrome\Application\chrome.exe)。问题是:一旦我尝试使用 Chromedriver,我就会得到

UnreachableBrowserException: Could not start a new session. Possible causes are invalid     address of the remote server or browser start-up failure.

既然火狐测试运行正常,那一定是“浏览器启动”有问题吧?!
所以第一个问题是:Chromdriver 假定的 chrome 二进制文件的默认位置是什么?
第二个问题:如何解决这个问题?是否有要设置的环境属性?或者我可以简单地将 PATH 设置为 chrome.exe 的位置。

更新:我挖了一下,我想我遇到了 thisthat 。这个问题有什么解决方法吗?

最佳答案

我自己也经历了同样的过程。

使用 Selenium Plugin 您可以设置 Selenium 网格。
使用 Chromedriver Plugin 您可以自动安装 chrome 驱动程序。
使用 Selenium Axis Plugin 您可以创建矩阵作业。

第一次安装问题
安装 Chromedriver 插件后,下载并在自动安装后准备就绪可能需要几分钟时间。
可能是从服务器在主服务器完全安装之前尝试安装 chromedriver,因此无法查找下载位置。
重新启动从站将使其再次尝试并在从站上安装 chromedriver。

在每个从站和主站上,您最终应该得到一个 $JENKINS_HOME\tools\chromedriver\chromedrive.exe,您可以在 Chrome[driver] 二进制路径的 Jenkins Selenium 插件配置中将其引用为 tools\chromedrive\chromedriver.exe,Jenkins 将为您添加特定于从站的 $JENKINS_HOME

将 Chrome 安装到默认位置,结果与描述的 C:\Program Files (x86)\Google\Chrome\Application\chrome.exe 相同。

此时,我可以成功运行测试作业,而不会出现您显示的错误。

DesiredCapabilities capability = DesiredCapabilities.chrome();
WebDriver driver = new RemoteWebDriver(new URL("http://Jenkins.ip.here:4444/wd/hub"), capability);
driver.get(siteBase.toString());
String page = driver.getPageSource();

所以还有一些其他的事情需要考虑
  • 更改了 jenkins selenium 配置,您是否重新启动了 selenium 服务,在配置更改后它似乎停止了它们。配置是否指定了实例。
  • 如果是安装位置问题,您可以使用以下方法更改测试用例中的安装位置选项
    ChromeOptions options = new ChromeOptions();
    options.setBinary("/path/to/other/chrome/binary");
    
  • 关于selenium - 如何在 Jenkins 托管的网格上使用 Chromedriver 设置 Selenium,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9567682/

    10-11 22:10
    查看更多