РЕШАЕМАЯ ПРОБЛЕМА: Селен неправильно заполнил форму

#python #selenium #webdriver #selenium-chromedriver

#питон #селен #веб-драйвер #селен-хромовый преобразователь

Вопрос:

1. Первый случай

Это мой скрипт, я хочу войти в Google с помощью selenium.

 ## ...
driver.get("https://www.smile.one/customer/account/login")
time.sleep(10)
driver.find_element_by_name('identifier').send_keys(email   Keys.RETURN)
time.sleep(5)
driver.find_element_by_name('password').send_keys(mantra   Keys.RETURN)
## ...
 

Приведенный выше сценарий работает правильно, когда я пробовал на своем ноутбуке. Поле идентификатора заполнено «exampleemail24», а пароль заполнен «example24».

Однако приведенный выше сценарий не работает, когда я использую его на VPS (AWS EC2 t3.small 2vCPU 2GB RAM). Поля идентификатора правильно заполнены «exampleemail24», но пароль заполнен «example».

2. Второй случай

Я попробовал в другой форме, но столкнулся с той же проблемой. Это мой сценарий.

 time.sleep(3) userid_form = driver.find_element_by_id('museid')
serverid_form = driver.find_element_by_id('mserverid')
userid_form.send_keys(data['user_id'])
serverid_form.send_keys(data['server_id']   Keys.SHIFT, Keys.TAB)
 

Это форма.

 <form id="mpay" action="/merchant/pay" method="post">
    <div class="sectionId-bor">
       <input type="tel" class="sectionId-input" id="museid" placeholder="USER ID" value="">
       <input type="tel" class="sectionId-input" id="mserverid" placeholder="Server ID" value="">
    </div>
</form>
 

Есть два поля: userid и serverid. Когда я попробовал скрипт на localhost (мой ноутбук), скрипт работает правильно. Заполнил идентификатор пользователя «79100601», а идентификатор сервера «2149». Однако 791, когда я развернул его на VPS (тот же VPS с первым случаем VPS). Идентификатор пользователя заполнен «791006», а идентификатор сервера «012149».

Дополнительные

Я убедился, напечатав переменные, которые я использовал, и они верны.

В обоих случаях журналы ошибок отсутствуют. А также попытался использовать selenium wait, пока python не перейдет в режим сна на 10 секунд. Так что, я думаю, это не вызвано медленным подключением к Интернету или не полностью загруженными элементами.

В чем проблема? Вы когда-нибудь испытывали это? Спасибо.

Комментарии:

1. Какую версию selenium вы используете?

2. @cheshire оба (AWS EC2 и мой локальный ноутбук) используют Selenium v3.141.0. Кроме того, та же версия chrome и chromedriver (87.0.4280).

Ответ №1:

Основываясь на моем тестировании, оказывается, что эта проблема вызвана VNC, который я использую. Я не знаю точной проблемы. Однако ошибка, о которой я упоминал выше, не возникла, и мой скрипт работал нормально после установки этого пакета:

 sudo apt install tigervnc-xorg-extension tigervnc-viewer
 

Спасибо.