【问题标题】:Chromedriver failing to launch Chrome properly via system account under JenkinsChromedriver 无法通过 Jenkins 下的系统帐户正确启动 Chrome
【发布时间】:2023-05-17 04:36:01
【问题描述】:

我使用 Jenkins 通过 Chrome 和 chromedriver.exe 运行浏览器自动化。这是在 Windows Server 2008 机器上。我的测试突然开始失败。我可以通过运行测试的控制台输出看到正在调用 chromedriver,并且我可以通过交互式桌面看到 Chrome 已启动。但随后 Chrome 只是挂起,该网站永远不会加载。 Jenkins 在本地系统帐户下运行。如果我在管理员帐户下通过命令行运行完全相同的测试,一切正常。

我还尝试为 Jenkins 安装 Chromedriver 插件。我可以看到 Jenkins 下载了一个稍新版本的 chromedriver.exe 并从那个新位置调用它。完全相同的问题仍然存在。

Chromedriver 是通过 ruby​​ 代码调用的。我使用 watir gem 进行浏览器自动化。我设法破解了 ruby​​ gem 代码并为 Chromedriver 打开了详细日志记录。 chromedriver 日志输出中没有任何令人担忧的地方。

我的测试框架已经死了。任何建议都非常感谢。

【问题讨论】:

  • 从我在 Google 的 Chromedriver 论坛上的阅读中可以清楚地看出,Chrome 可能会自动更新自身(这就是为什么一切都突然中断的原因),并且新版本的 Chrome 与 Chromedriver 不匹配作为服务运行。现在很多人的测试框架都坏了。提供的解决方案是安装以前版本的 Chrome。然而,这是有问题的,因为谷歌并没有正式提供旧版本,所以你已经在网上某个地方挖了一个。而且,我必须为所有用户安装一个版本,而不仅仅是为当前用户安装。

标签: jenkins selenium-chromedriver


【解决方案1】:

我能够找到安装在我的 Jenkins 服务器上的以前版本的 Chrome (v37)。但是,较旧的安装程序不会为所有用户安装 Chrome,因此我在安装较旧 Chrome 版本时登录的管理员帐户下运行了我的 Jenkins 服务。只有这样 Chromedriver 才能找到 chrome.exe;然后我的浏览器自动化测试再次起作用。

【讨论】:

    最近更新 更多