Скрипт Python Selenium удаляет ключи, но только при использовании на VNC

Настраивать:

  • Машина с Windows 10 с подключением VNC к машине Debian
  • VNC Viewer 5.3.3 в Windows
  • vncserver (версия Xvnc TightVNC-1.3.9) в Debian

У меня есть скрипт Python / Selenium / Chromedriver на машине Debian, который вводит данные в текстовые поля на веб-странице. Код, который дает сбой, очень прост:

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

Когда я настраиваю сеанс VNC для Debian с компьютера Windows и запускаю сценарий из xterm на рабочем столе X-windows, символы в doc_id случайно удаляются. Добавление задержек между записями не имело никакого значения. Веб-страница не изменяет содержимое текстового поля во время ввода с использованием JS. Проблема возникает при использовании как Chrome, так и headlesschrome. Я подтвердил, что у меня установлена ​​новая версия chromedriver (исправлена ​​проблема с клавишей перетаскивания) и что моя клавиатура настроена на английский язык, чтобы избежать другой известной проблемы.

Наконец, после нескольких часов поиска и устранения неисправностей я нашел кое-что интересное. Если я использую Putty в окне Windows для ssh напрямую в Debian (без X-windows, без VNC), а затем запускаю скрипт, он работает отлично. Когда я запускаю один и тот же сценарий с рабочего стола VNC, он каждый раз терпит неудачу из-за того, что символы отбрасываются.

Кто-нибудь знает, почему запуск сценария через соединение VNC должен иметь значение? Спасибо!


person jmq    schedule 09.08.2019    source источник


Ответы (1)


Есть открытая ошибка для TightVNC, связанная с отправкой ключей в chromedriver. Проблема 1509: TightVNC: sendKeys ()

Как обходной путь, предложенный в обсуждении, он не воспроизводится на vnc4server. Вы можете попробовать это.

person Rahul L    schedule 17.08.2019
comment
Это в точности соответствует тому, что я вижу (отброшены символы 5 и 6). Спасибо! - person jmq; 19.08.2019