【问题标题】:Selenium + Jenkins: Missing location headerSelenium + Jenkins:缺少位置标头
【发布时间】:2013-10-08 21:22:06
【问题描述】:

我正在尝试将 Selenium Grid 与 Jenkins 一起使用。 当我使用服务器独立的 2.35.0 jar 启动 Selenium Hub 和 Node 时,一切正常。 但是,当我使用 Jenkins Selenium Grid 插件作为集线器时不起作用。

错误出现在这里:

driver = new RemoteWebDriver(新 URL (gridURL), 能力);

网格 URL 是 "http://localhost:4444/wd/hub"

能力是这样的:

DesiredCapabilities capabilities = DesiredCapabilities.firefox ();
capabilities.setPlatform ( Platform.LINUX );

抛出此异常:

org.openqa.selenium.WebDriverException: Error forwarding the new session new session request for webdriver should contain a location header with the session.
Command duration or timeout: 25.28 seconds
Build info: version: '2.35.0', revision: '8df0c6bedf70ff9f22c647788f9fe9c8d22210e2', time: '2013-08-17 12:46:41'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '3.8.0-31-generic', java.version: '1.7.0_40'
Driver info: org.openqa.selenium.remote.RemoteWebDriver

作为 Hub,我使用 Jenkins Selenium 插件版本 2.3 作为节点,我使用 selenium-server-standalone-2.35.0.jar。

当我用浏览器打开http://localhost:4444/ 时,它显示:You are using grid 2.29.0 所以我下载了 selenium-server-standalone-2.29.0.jar 并让它作为集线器运行。该节点仍然是版本 2.35.0。 然后我有同样的例外。我尝试使用 2.29.0 的节点和集线器,但我的 Firefox 似乎太新了。

我搜索了几个小时,但没有找到有关此错误的任何信息。

编辑: Jenkins 安装的插件,2013 年 8 月 18 日起:https://wiki.jenkins-ci.org/display/JENKINS/Selenium+Plugin

开发者在两天后的 2013 年 8 月 20 日更新了插件:https://github.com/jenkinsci/selenium-plugin/commit/316eccdef608e855863cf04b1c240fa2c7b8b762

我不知道这是否会导致我的错误,但有可能。我还不知道如何做到这一点,但我将尝试从 github 上的源代码构建我自己的插件版本。

【问题讨论】:

  • 你能告诉我们你的测试课吗?即,任何时候 WebDriver 被实例化
  • 我不确定我是否理解正确。 WebDriver 在被告知的代码被剪断之前直接被实例化。我调试了代码,当我尝试创建新的 RemoteWebDriver 时抛出异常。

标签: java selenium jenkins


【解决方案1】:

此错误表示您没有连接到集线器的节点。 Hub 已UP并正在接收连接,但无法将请求转发到节点。

确保您有节点连接到您的集线器。您可以通过 --

java -jar selenium-server-2.29.0.jar -role node -hubUrl http://ip-of-hub:4444/wd/register

此命令可能不准确。参考官方文档。

【讨论】:

  • 该节点是您的本地计算机吗?
  • 感谢您的回答。我确实已将节点连接到集线器。命令:java -jar selenium-server-standalone-2.35.0.jar -role node -hub http://localhost:4444/grid/register 参见 Wiki:link 我可以在 Jenkings Selenium 插件中看到集线器。
  • 是的,现在它是我的本地计算机。一切都在本地运行。
  • 你是如何连接节点的? firefox 需要访问 X 会话才能显示
  • 嗯,一切都在本地运行,所以在集线器和节点的两侧都有一个X-Server。
【解决方案2】:

我现在肯定知道问题出在哪里了:

正如我上面提到的,该节点是 Selenium 版本 2.35。当前的 Jenkins Selenium 插件是使用 Selenium 2.29 的 2.3 版。这是导致错误的原因。

现在我使用 Selenium 2.29 版作为节点。并安装了 Firefox 版本 18。现在一切正常。我联系了开发人员,我正在尝试从 git 构建当前的插件版本。目前没有成功,但我想我会为此打开另一个线程。

感谢您的帮助。

【讨论】:

    【解决方案3】:

    您可以在 jenkins 插件中更新 selenium 版本,在下面提到的路径中将 2.29.0 替换为 2.39.0:

    [JenkinsFolder]\plugins\selenium\WEB-INF\lib

    你会在这里找到旧罐子。用最新的 jar 替换它。 它会正常工作的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-23
      • 2010-12-10
      • 1970-01-01
      • 2013-08-19
      • 1970-01-01
      • 2019-06-04
      • 2022-12-18
      相关资源
      最近更新 更多