使用Selenium和无头Chrome发送密钥

时间:2017-07-07 20:06:52

标签: selenium selenium-chromedriver chromium

使用headless chrome和selenium,我可以成功地将密钥发送到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?

1 个答案:

答案 0 :(得分:1)

这是chromedriver中的一个错误详细here

根据Chrome驱动程序的新主角

  

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

最近已经修复,将在第2.31版中发布。不幸的是,铬团队并没有公开提供夜间版本,也没有官方发布日期。

在此期间,您可以build your own chromedriver或从第三方下载预构建的二进制文件...可以在this github找到dockerfile和工作二进制文件。