我正在尝试使用无头Chrome在Vagrant VM中运行Protractor e2e测试。 我设法通过使用Xvfb来实现它,但是当我运行测试来填充表单时,我收到错误:未知错误:键代码转换需要X显示,请考虑使用Xvfb
所有测试运行正常,但只要我使用getKeys()(例如element(by.model('user.email'))。sendKeys('admin');)我得到这个错误,即使我已经使用Xvfb。
我正在跑步:
我使用以下shell脚本启动Selenium和Xvfb:
#!/ bin / sh的
webdriver-manager start&
Xvfb:1 -ac -screen 0 1280x1024x8&
export DISPLAY =:1
我还在/ opt / google / chrome / google-chrome中添加了“export DISPLAY =:1”。 再一次,没有sendKeys()的测试运行良好。
到目前为止我做了什么:
我想知道如何在Vagrant VM中使用无头Chrome的sendfkeys()。 非常感谢任何帮助。
答案 0 :(得分:3)
确保seleniumAddress: 'http://localhost:4444/wd/hub'与您的selenium服务器匹配,并避免设置chromeOnly
,因为这样可以有效避免使用无头selenium服务器。
此外,Xvfb需要在webdriver-manager
之前运行,并且您似乎缺少xvfb-run
,因为您似乎需要它为您执行X authority dance:
#!/bin/sh
export DISPLAY=:1
Xvfb $DISPLAY -ac -screen 0 1280x1024x8 &
sleep 1
xvfb-run webdriver-manager start &
如果您感兴趣我已经设置了无头基于docker的解决方案,可选择VNC访问和视频录制:https://github.com/elgalu/docker-selenium