Я пытаюсь создать программу, которая регистрируется в Instagram с новой учетной записью, у меня есть электронные письма и остальная часть сгенерированных, когда я продолжаю и посылаю send_keys в соответствующие поля, это прекрасно работает.Я хотел реализовать функцию повтора, которая бы очищала поле электронной почты и пробовала другую почту.Однако это не работает, хотя send_keys к нему работал ранее?Фрагмент моего кода ниже.
driver.get('https://www.instagram.com')
driver.find_element_by_xpath("//*[contains(@aria-label,'Email')]").send_keys(mail)
driver.find_element_by_xpath("//*[contains(@aria-label,'Full')]").send_keys(name + lastname)
driver.find_element_by_xpath("//*[contains(@aria-label,'User')]").send_keys(namae+lastonamae+pamae2)
driver.find_element_by_xpath("//*[contains(@aria-label,'Password')]").send_keys(password)
driver.find_element_by_xpath("//*[contains(@type,'submit')]").click()
Это попытка создать новую учетную запись с соответствующими учетными данными, однако, когда это не удается, я хочу, чтобы он попытался найти элемент, который присутствует только в случае сбоя,и если он обнаружит это, он должен очистить поле электронной почты и повторить попытку с другим.Код ниже.
driver.find_element_by_xpath('//*[@id="react-root"]/section/main/article/div[2]/div[1]/div/form/div[3]/div/div[2]/span') #this looks for the element only present on the fail page
driver.find_element_by_xpath("//*[contains(@aria-label,'Email')]").clear()
driver.find_element_by_xpath("//*[contains(@aria-label,'Email')]").send_keys(mail2)
Не очищает поле, но и не вызывает ошибку.Затем он продолжает вводить 2-е письмо без проблем.Я признателен за любую помощь по этому вопросу.
РЕДАКТИРОВАТЬ: Опубликовать больший кусок кода.
def signup():
driver.get('https://www.instagram.com')
time.sleep(7)
if trycounter < 3: #this is almost always true, just a failsafe
driver.find_element_by_xpath("//*[contains(@aria-label,'Email')]").send_keys(mail1)
driver.find_element_by_xpath("//*[contains(@aria-label,'Full')]").send_keys(name + ' ' + lastname)
driver.find_element_by_xpath("//*[contains(@aria-label,'User')]").send_keys(name+lastname+extension)
driver.find_element_by_xpath("//*[contains(@aria-label,'Password')]").send_keys(password)
driver.find_element_by_xpath("//*[contains(@type,'submit')]").click()
time.sleep(7)
try: #this only executes if a popup that wants you to confirm your age pops up
driver.find_element_by_xpath('//*[@id="igCoreRadioButtonageRadioabove_18"]').click()
driver.find_element_by_xpath('/html/body/div[3]/div/div[3]/div/button').click()
time.sleep(5)
except:
pass
try:
randomgen() #generates the mail,password and name
driver.find_element_by_xpath('//*[@id="react-root"]/section/main/article/div[2]/div[1]/div/form/div[3]/div/div[2]/span')
time.sleep(1)
driver.find_element_by_xpath("//*[contains(@aria-label,'Email')]").clear()
time.sleep(1)
driver.find_element_by_xpath("//*[contains(@aria-label,'Email')]").send_keys(mail2)
driver.find_element_by_xpath("//*[contains(@aria-label,'User')]").send_keys(username)
driver.find_element_by_xpath("//*[contains(@type,'submit')]").click()
time.sleep(7)