Python Selenium脚本只有在使用VNC时才会丢失按键

5

设置:

  • Windows 10机器,使用VNC连接到Debian机器
  • Windows上安装VNC Viewer 5.3.3
  • Debian上安装vncserver(Xvnc版本为TightVNC-1.3.9)

我在Debian机器上有一个Python/Selenium/Chromedriver脚本,可以对网页上的文本框进行数据输入。失败的代码非常简单:

element = browser.find_element_by_path('//input[@name="ReqDocID"]')
element.clear()
element.send_keys(doc_id) # doc_id is a 3 character string

当我从Windows机器设置VNC会话到Debian并在X-windows桌面上的xterm中运行脚本时,doc_id中的字符会随机丢失。在输入之间添加延迟没有任何区别。网页在使用JS进行输入时不会修改文本框的内容。该问题在使用Chrome和headlesschrome时都会出现。我验证了我有一个新版本的chromedriver(修复了键盘问题)并且我的键盘设置为英语以避免另一个已知问题。
最终,在经过几个小时的故障排除后,我发现了一些有趣的东西。如果我在Windows桌面上使用Putty直接ssh进入Debian(没有X-windows,没有VNC),然后运行脚本,它就可以完美地工作。当我从VNC桌面运行相同的脚本时,由于字符被丢弃,它每次都失败。
有没有人知道为什么通过VNC连接运行脚本会有所不同?谢谢!
1个回答

4

1
这正好符合我所看到的(5和6个字符被删除)。谢谢! - jmq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接