Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 量角器sendkeys不工作:键码转换需要x显示大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用无头Chrome在Vagrant VM中运行Protractor e2e测试.
我设法通过使用Xvfb使其工作但是当我运行测试来填充表单时出现错误:未知错误:键代码转换需要X显示,请虑使用Xvfb

所有测试运行正常,但只要我使用getKeys()(例如element(by.model(‘user.email’)).sendKeys(‘admin’);)即使我已经在使用Xvfb,我也会收到此错误.

我在跑:

>使用Yeoman angular-fullstack生成生成的AngularJS示例应用程序
> Nodejs版本0.10.30,与nvm一起安装
> Vagrant 1.6.3
> VirtualBox 4.3.14
>主机操作系统Ubuntu 14.04 32位
>客户操作系统Ubuntu 14.04 32位
>铬37.0.2062.94
> chromedriver 2.10.267517

我使用以下shell脚本启动SELEnium和Xvfb:

我还在/ opt / google / chrome / google-chrome中添加了“export DISPLAY =:1”.
同样,没有sendKeys()的测试运行正常.

到目前为止我做了什么:

>我正在运行32位Ubuntu所以我下载了chromedriver 2.10 32位,但这没有帮助
>我使用–verbose运行chromedriver并检查日志,但只显示相同的错误
>我摆弄了Xvfb屏幕尺寸设置,也没有帮助
>我在这里检查了一些源代码https://github.com/bayandin/chromedriver/blob/master/keycode_text_conversion_x.cc并在第196行找到了错误消息.
当命令gfx :: GetXDisplay()(第193行)没有获得显示对象时触发它.我怀疑它可能只是我在/ opt / google / chrome / google-chrome中导出的DISPLAY变量,但我不确定并且不知道如何修复它.

我想知道如何在Vagrant VM中使用无头Chrome的sendfkeys().
任何帮助是极大的赞赏.

解决方法

确保 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

大佬总结

以上是大佬教程为你收集整理的node.js – 量角器sendkeys不工作:键码转换需要x显示全部内容,希望文章能够帮你解决node.js – 量角器sendkeys不工作:键码转换需要x显示所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。