Как зациклить выполнение скрипта на selenium?

#python #python-3.x #selenium #selenium-webdriver

Вопрос:

Нужна помощь от сообщества. Я новичок в Python и не понимаю, как зациклить выполнение selenium сценария.

 from selenium import webdriver
import time

driver = webdriver.Firefox()

def change_password():
    driver.get("http://nsagov.ru/Users/Login.aspx")
    driver.find_element_by_xpath("/html/body/form/div[4]/div[1]/table/tbody/tr/td/div/table/tbody/tr[4]/td/div/a/span").click()
    driver.find_element_by_id("ContentPlaceHolder1_GetNewPasswordPopup_EmailTB_I").send_keys("test@mail.com")
    driver.find_element_by_xpath("//div[@id='ContentPlaceHolder1_GetNewPasswordPopup_TPCFm1_GetPasswordButton_CD']/span").click()
    
change_password()

time.sleep(5)
driver.quit()
 

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

1. Вы имеете в виду запуск вышеупомянутого сценария несколько раз?

2. @aykcandem да

Ответ №1:

вы можете использовать этот процесс

 for i in range(10):
    driver.get("http://nsagov.ru/Users/Login.aspx")
    driver.find_element_by_xpath("/html/body/form/div[4]/div[1]/table/tbody/tr/td/div/table/tbody/tr[4]/td/div/a/span").click()
    driver.find_element_by_id("ContentPlaceHolder1_GetNewPasswordPopup_EmailTB_I").send_keys("test@mail.com")
    driver.find_element_by_xpath("//div[@id='ContentPlaceHolder1_GetNewPasswordPopup_TPCFm1_GetPasswordButton_CD']/span").click()
    driver.execute_script("window.open('');")
    time.sleep(2)
    driver.switch_to.window(driver.window_handles[-1])
 

которые создают новую вкладку и снова следуют коду

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

1. Я решил проблему с while помощью , но мне нравится ваше решение. Без #driver.execute_script("window.open('');")