我开始尝试学习如何为一个小项目编写自动化测试,但没有任何工作可以立即使用。经过几个小时的搜索和试验我找到了适合我项目的正确配置。想分享它可能会对未来的人们有所帮助。
以下是我在此调试过程中遇到的错误的小摘要:
send_keys
崩溃了
--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.
答案 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,我的测试从那里开始。