使用Selenium和无头Chrome发送密钥



使用无头铬和硒,我可以成功地将密钥发送到Mac上的网站。但是,当我将相同的代码移植到我的 Linux 机器时,它会崩溃。违规行如下:

driver.find_element_by_xpath('//input[@id="username"]').send_keys(username)

我收到以下错误消息:

"an X display is required for keycode conversions, consider using Xvfb"

为什么这在 Linux 上不起作用?

这是chromedriver中的一个错误,详见此处。

根据镀铬驱动程序的新线索

问题出在ChromeDriver中。顾名思义,sendKey 命令将模拟的击键发送到 Chrome,ChromeDriver 负责将输入的文本字符串转换为相应的击键以发送到 Chrome。在Linux上,ChromeDriver使用X显示器进行转换,当没有X显示器可用时会失败。

它最近已修复,并将在 v 2.31 中发布。不幸的是,Chromium团队没有公开提供夜间构建,并且还没有正式的发布日期。

同时,您可以构建自己的chrome驱动程序或从第三方下载预构建的二进制文件...dockerfile 和工作二进制文件都可以在这个 github 上找到。

相关内容

  • 没有找到相关文章

最新更新