【问题标题】:Selenium test cases work in Firefox but not in Chrome - Headless SetupSelenium 测试用例在 Firefox 中有效,但在 Chrome 中无效 - Headless Setup
【发布时间】:2017-05-26 12:04:54
【问题描述】:

经过一段时间的努力,我已经没有选择的余地了。

我正在建立一个基于 selenium 的构建服务器,并且在引入 Google-Chrome 之前取得了很大的成功。

我现在可以通过 selenium 成功运行测试用例,甚至在 Firefox 无头上捕获屏幕截图没有问题,除了 Chrome 之外的所有内容都没有发挥作用。

从运行旧版本到重新安装,我已经按照我能找到的所有步骤进行操作,但没有运气。

当我调用 phpunit 并且测试设置为使用 Firefox 时,一切都很好:

Sebastian Bergmann 和贡献者的 PHPUnit 5.7.20。 运行时:PHP 7.0.15-0ubuntu0.16.04.4 和 Xdebug 2.4.0 配置:/private/var/www/functionaltests/vaimodev/tests/functional/phpunit.xml.dist . 1 / 1 (100%) 时间:10.61 秒,内存:4.00MB 好的(1 个测试,1 个断言)

现在进行相同的测试,但设置为使用 chrome:

1) defaultTest::testTitle PHPUnit_Extensions_Selenium2TestCase_WebDriverException:未知错误:Runtime.executionContextCreated 具有无效的“上下文”:{“auxData”:{“frameId”:“10699.1”,“isDefault”:true},“id”:1,“name”:“”,“origin” ":"://"} (会话信息:chrome=58.0.3029.110) (驱动程序信息:chromedriver=2.9.248304,platform=Linux 4.4.0-72-generic x86_64)(警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:46 毫秒 构建信息:版本:'3.4.0',修订:'未知',时间:'未知' 系统信息:主机:'m2.vaimo.dev',ip:'127.0.0.1',os.name:'Linux',os.arch:'amd64',os.version:'4.4.0-72-generic' , java.version: '1.8.0_131' 驱动程序信息:org.openqa.selenium.chrome.ChromeDriver 功能 [{applicationCacheEnabled=false,rotatable=false,chrome={userDataDir=/tmp/.com.google.Chrome.5OdRZX},takesHeapSnapshot=true,databaseEnabled=false,handlesAlerts=true,版本=58.0.3029.110,平台=LINUX , browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takeScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}] 会话 ID:68262783c1d2f9aba29f813504ed9606

我按如下方式启动我的 selenium 实例:

DISPLAY=:8.8 java -Dwebdriver.gecko.driver=/home/vagrant/geckodriver -Dwebdriver.chrome.driver=/home/vagrant/chromedriver -Dchrome.binary=/opt/google/chrome/chrome -jar / home/vagrant/selenium-server-standalone-3.4.0.jar -port 4444 > /dev/null 2>&1 &

现阶段如有任何帮助,我们将不胜感激...

【问题讨论】:

  • 您是否安装了最新版本的 selenium 和 chromedriver?我在某些版本的 chromedriver 中看到了错误报告:Chrome v54 raises SessionNotCreatedError and exits
  • 目前在干净的 Vagrant 实例上运行两者的最新版本,尽管我已经尝试同时降级所有它们以及每个版本的变体并且都给了我相同的结果.. .

标签: linux google-chrome selenium firefox xvfb


【解决方案1】:

这看起来很奇怪,它太小了

命令持续时间或超时:46 毫秒

作为选项,尝试增加超时(会话等)

另外查看代码可能会有所帮助:)

【讨论】:

  • 您要查找的代码是什么?我会尽快分享。
  • 我想知道 - 您是否使用任何 DriverCapabilities 以及在什么时候测试失败?就在创建浏览器会话时?
  • 如上所述开箱即用...未指定驱动程序功能...它似乎无法创建会话...即使尝试通过 Web 实例执行此操作,它只是无法创造视野,但 FF 是完美的......我现在正试图在这个过程发生时跟踪日志,看看我是否能发现任何东西......
  • '5:42:03.396 错误 - org.apache.commons.exec.ExecuteException:执行失败(退出值:-559038737。由 java.io.IOException 引起:无法运行程序“/home/ vagrant/chromedriver" (在目录 "."): error=2, No such file or directory)'
【解决方案2】:

找到问题了……

第一个问题是chmod +x chromedriver不够用,我得加chmod 775 chromedriver

第二个问题是一个菜鸟的错误......注意自己!

在 64 位系统上下载 64 位!!!!!!!!!! (捂脸)

【讨论】:

  • 没关系。虽然现在创建了 chrome 会话,但在运行测试时我仍然收到错误消息。 defaultTest::testTitle PHPUnit_Extensions_Selenium2TestCase_WebDriverException: unknown error: Runtime.executionContextCreated has invalid 'context': {"auxData":{"frameId":"14488.1","isDefault":true},"id":1,"name":"","origin":"://"}
  • 问题已解决... 2.9 版本早于 2.29。请务必下载https://chromedriver.storage.googleapis.com/2.29/chromedriver_linux64.zip
  • wget https://chromedriver.storage.googleapis.com/2.29/chromedriver_linux64.zip unzip
猜你喜欢
  • 2016-02-19
  • 2022-01-23
  • 1970-01-01
  • 2018-07-15
  • 2020-04-04
  • 2011-03-16
  • 2015-06-11
  • 2018-07-05
  • 2014-08-18
相关资源
最近更新 更多