【问题标题】:How to set up Selenium with Chromedriver on Jenkins-hosted Grid如何在Jenkins托管网格上使用Chromedriver设置Selenium
【发布时间】:2012-03-22 23:39:46
【问题描述】:

我只是用 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.

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

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

【问题讨论】:

    标签: selenium jenkins jenkins-plugins selenium-chromedriver


    【解决方案1】:

    您可以将其用作节点设置代码:

    java -jar selenium-server-standalone-2.19.0.jar -Dwebdriver.chrome.driver="C:\Java\chromedriver.exe" -role node -hub http://localhost:4444/grid/register -browser "browserName=internet explorer,版本=8,平台=WINDOWS”-浏览器“浏览器名称=chrome,版本=17,平台=WINDOWS”-浏览器“浏览器名称=firefox,版本=9,平台=WINDOWS”-浏览器“浏览器名称=opera,版本=11,平台=WINDOWS"

    所以直接指向 chromedriver 二进制文件,它是一个 chromedriver.exe,而不是常见的 chrome.exe。我有类似的问题,它对我有用。

    【讨论】:

    • 我使用 Jenkins Selenium Grid 插件和 Chromedriver 插件,这意味着所有节点设置都是由这个插件完成的(如上所述,firefox 运行良好)。由于 jenkins 在系统帐户下运行,因此默认位置没有 chrome.exe。但是设置 ".setCapability("chrome.binary", "\"C:\\Program Files (x86)\\Google\\Chrome\\Application\"")" 没有帮助。我不知道 jenkins 插件试图在哪里找到可执行文件(没有为系统设置 %HOMEPATH%)。那么如何设置路径或我们将chrome复制到。
    【解决方案2】:

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

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

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

    在每个从站和主站上,您最终应该得到一个 $JENKINS_HOME\tools\chromedriver\chromedrive.exe,您可以在 Chrome[驱动程序] 二进制路径的 Jenkins Selenium 插件配置中将其引用为 tools\chromedrive\chromedriver.exe,并且 Jenkins 将在特定从站之前添加 @987654327 @ 为你。

    将 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,但继续获取 unable to connect to chrome. error Command failed with exit code 1。有什么想法吗?
    【解决方案3】:

    您在启动节点时是否指定了-Dwebdriver.chrome.driver=Path/To/ChromeDriver

    添加它可能会有所帮助。

    【讨论】:

    • 它应该在java命令之后添加,因为它是JVM的参数,如果它放在.jar规范之后,命令将失败
    【解决方案4】:

    我在 selenium 组问过同样的问题:

    https://groups.google.com/forum/?fromgroups#!topic/selenium-users/-3LJ3wma3RE

    那里提供的解决方案对我不起作用,但可能对您有用? (在 jenkins 上为 chromedriver 设置 PATH)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-09
      • 2023-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多