使用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?
答案 0 :(得分:1)
这是chromedriver中的一个错误详细here。
根据Chrome驱动程序的新主角
问题出在ChromeDriver中。顾名思义,sendKey命令向Chrome发送模拟击键,ChromeDriver负责将输入文本字符串转换为相应的击键以发送给Chrome。在Linux上,ChromeDriver使用X显示进行转换,并在没有X显示时失败。
最近已经修复,将在第2.31版中发布。不幸的是,铬团队并没有公开提供夜间版本,也没有官方发布日期。
在此期间,您可以build your own chromedriver或从第三方下载预构建的二进制文件...可以在this github找到dockerfile和工作二进制文件。