Selenium Webdriver для Chrome не отправляет символ char (94) или знак «^» - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь заполнить форму, используя Selenium в Python 3.7. Вход в систему работает нормально, но пароль содержит знак «^» (ASCII 94). И Selenium, похоже, не обрабатывает / не отправляет этот знак.

Я уже пытался обойти это, используя ActionChains и нажимая Shift + 6, используя это, а также нажимая ALT + NUM9 + NUM4. Кажется, что ничего из этого не работает, хотя я могу легко войти вручную.

username = driver.find_element_by_id('email')
username.send_keys("my@email.com")
passw = driver.find_element_by_id('password')
passw.send_keys("my_password_includes^_sign")

Я ожидаю, что точные строки появятся в формах, но вместо этого в пароле появится что-то вроде my_password_include_sign. (я попытался отправить его в форму входа, чтобы он был виден)

Ответы [ 2 ]

0 голосов
/ 06 мая 2019

К сожалению, Selenium не может набрать некоторые специальные символы, в этом случае вместо этого отправьте Unicode ( ^ Unicode - это U + 005E, и его escape-последовательность \ u005E ):

passw.send_keys("my_password_includes\u005E_sign")

Надеюсь, это поможет.

0 голосов
/ 06 мая 2019

Чтобы получить Alt + 94 часть, попробуйте

passw.send_keys(Keys.chord(Keys.ALT, "9"), Keys.chord(Keys.ALT, "4"))
...