设置与vagrant或docker混合的selenium,chr​​omedriver和wdio

时间:2017-07-01 05:05:56

标签: selenium vagrant selenium-chromedriver webdriver-io

我开始尝试学习如何为一个小项目编写自动化测试,但没有任何工作可以立即使用。经过几个小时的搜索和试验我找到了适合我项目的正确配置。想分享它可能会对未来的人们有所帮助。

以下是我在此调试过程中遇到的错误的小摘要:

  • 使用Jasmine& WDIO,send_keys崩溃了
    • 这是一个Firefox / geckodriver错误,或类似的东西
  • 从Firefox切换到Chrome后,WDIO似乎挂起了
    • Chrome需要以--no-sandbox模式运行,基本上是

我认为我的问题可能源于让WDIO在我的本地机器上执行我的测试,而Selenium在Vagrant虚拟机中敲击浏览器。因此,这将主要适用于使用WDIO& amp; amp;和/或其他环境的人们(vagrant-> local,vagrant-> vagrant,docker-> local等)。硒/ Chromedriver。 Here is a gist of the configuration file I ended up with.

1 个答案:

答案 0 :(得分:1)

我从fanatique/vagrant-selenium-vm开始并将其修改为使用Chrome而不是Firefox because send_keys was broken with Firefox/geckodriver at the time of writing。换掉包后,我会用wdio开始测试,但它似乎挂了。打开详细日志记录显示它尝试启动但失败但没有解释原因。

[00:06:39]  COMMAND POST     "/wd/hub/session"
[00:06:39]  DATA        {"desiredCapabilities":{"javascriptEnabled":true,"locationContextEnabled":true,"handlesAlerts":true,"rotatable":true,"browserName":"chrome","loggingPrefs":{"browser":"ALL","driver":"ALL"},"requestOrigins":{"url":"http://webdriver.io","version":"4.6.2","name":"webdriverio"}}}

fanatique/vagrant-selenium-vm&中的nohup java ...命令中删除了setup.sh,以便实时查看来自Selenium的日志,然后我就能看到来自"only local connections are allowed"的{​​{1}}消息。这导致我a SO post说要添加chromedriver作为chromedriver的arg - 但我仍然收到本地连接错误消息。 Chrome本身最终需要--whitelisted-ips=""标志 - 允许WDIO连接到Selenium中的chromedriver,我的测试从那里开始。