Splinter / selenium интерпретирует некоторые символы как escape-последовательности - PullRequest
0 голосов
/ 27 сентября 2018

Я использую Selenium (3.14.0), Splinter (0.9.0), Chrome Webdriver и XQuartz на Mac для проверки моего кода.

Когда я пытаюсь ввести данные в форму,некоторые символы не приходят в input.Скажем, я делаю some_text_input.type('cats') вход получает только 'cat'.

После некоторого исследования я обнаружил, что 3 символа получают специальную обработку (в то время как все остальные проходят):

  • 'e' становится пробелом - и стирает предыдущий символ
  • 'r' становится возвращаемым
  • 's' становится пробелом

Обратите внимание, что это происходит только на Mac,и отлично работает в среде CI.

Кто-нибудь сталкивался с чем-то подобным?Где происходит побег?

1 Ответ

0 голосов
/ 27 сентября 2018

В случае, если какая-то бедная душа сталкивается с этим, причина этого заключается в том, что:

Внутри Chrome, ui::VKEY_BACK имеет короткое замыкание и никогда не переводится в его эквивалент кода x.Chrome не учитывает сопоставления кодов ключей удаленного x-сервера.

Как указано в этой ошибке chromedriver от 2014 года. Таким образом, виновником является сочетание chromedriver и XQuartz.На момент написания этой статьи (сентябрь 2018 года) эта ошибка не была сильно изменена (пожалуйста, войдите на сайт chromium.org и проголосуйте за него!).Мой текущий обходной путь - убедиться, что оскорбительные буквы не используются в моих тестах.Пока это: e, r, s и 6. Может быть больше.

...