Я переписываю статистику с https://game -rainbow6.ubi.com / en-us / uplay / player-statistics / dbd1cef3-d69d-4296-a235-ae8d7d70363f / мультиплеер .И я использую Selenium и Python, чтобы войти и очистить статистику, которую я хочу.Процесс входа в систему происходит в классе player
Веб-драйверу необходимо найти два поля: «AuthEmail» и «AuthPassword».Моя проблема в том, что иногда он находит поля и регистрируется правильно, но иногда выдает ошибку, что он не может найти поля.Я устал от неявного ожидания, думая, что для полной загрузки нужен ифрам, но иногда я получаю сообщение об ошибке.Я также попробовал явное ожидание с:
WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, "AuthEmail"))
, но я получаю ошибку, что мои:
__init__ function takes 2 args and I gave it 3
Испытания кода:
def __init__(self, player_name):
self.driver = webdriver.Chrome()
self.player_stats = {}
def login(self):
#login pop up is in a different IFrame, switch to it
iframe = self.driver.find_element_by_tag_name('iframe')
self.driver.switch_to.frame(iframe)
login_email = self.driver.find_element_by_id('AuthEmail')
login_email.send_keys('')
login_pwd = self.driver.find_element_by_id('AuthPassword')
login_pwd.send_keys('')
submit_button = self.driver.find_element_by_id('LogInButton')
submit_button.click()
#Switch driver back to main webpage for webscraping
self.driver.switch_to.default_content()