#python #python-3.x #selenium #selenium-webdriver #selenium-chromedriver
#python #python-3.x #selenium #selenium-webdriver #selenium-chromedriver
Вопрос:
итак, я пытаюсь войти на этот веб-сайт под названием ttrockstars, и я написал функцию для входа на веб-сайт. Однако код, похоже, выполняется слишком быстро и игнорирует time.sleep(5)
то, что я добавил в код:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
PATH = r"C:UsersshahfDesktopchromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("https://play.ttrockstars.com/auth/school/student")
def login(school, username, password):
driver.find_element_by_xpath("//input[1]").send_keys(school)
driver.find_element_by_xpath("//input[1]").send_keys(Keys.RETURN)
time.sleep(5)
driver.find_element_by_xpath("//input[1]").send_keys(username)
driver.find_element_by_id("mat-input-2").send_keys(password)
driver.find_element_by_id("mat-input-2").send_keys(Keys.RETURN)
login("my school", "my username", "my password")
Когда я запускаю это, оно просто вводит название школы, а затем удаляет его и вводит имя пользователя, а затем выдает сообщение об ошибке, в котором говорится, что поле пароля не существует. Это не было бы проблемой, если бы он действительно отправил school и подождал 5 секунд. Почему это происходит и есть ли обходной путь?
Ответ №1:
Вот шаги, которым нужно следовать, чтобы достичь желаемого:
- Переход в режим ожидания через 2-3 секунды после заполнения названия школы.
- Найдите элемент выпадающего меню по его классу и получите
option
элемент по элементу выпадающего меню и щелкните его. - Подождите 2-3 секунды, чтобы загрузилась страница имени пользователя и пароля.
- Введите имя пользователя и пароль и нажмите enter
Примечание: При этом будет выбран первый вариант из списка выбора школы.
Вот код:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
PATH = r"C:UsersshahfDesktopchromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("https://play.ttrockstars.com/auth/school/student")
def login(school, username, password):
driver.find_element_by_xpath("//input[1]").send_keys(school)
time.sleep(3)
driver.find_element_by_class_name("mat-autocomplete-panel").find_element_by_class_name("mat-option").click()
time.sleep(3)
driver.find_element_by_xpath("//input[1]").send_keys(Keys.RETURN)
time.sleep(5)
driver.find_element_by_xpath("//input[1]").send_keys(username)
driver.find_element_by_id("mat-input-2").send_keys(password)
driver.find_element_by_id("mat-input-2").send_keys(Keys.RETURN)
login("my school", "my username", "my password")