У меня есть скрипт ниже, скопированный и вставленный 51 раз, создавая 2300 строк кода, чтобы выполнить ту же задачу, с одной строкой кода, изменяющейся для каждого блока, 51 раз. У меня есть два вопроса в этом проекте:
1. Как можно получить в терминале подсказку с просьбой ввести пользовательские данные для 3 переменных, которые сценарий использует 51 раз? Переменные:
- Часть '#entries' в, driver.find_element_by_id("quickpostHashTag").send_keys("**#entries**",(Keys.RETURN))
- Часть 'Title' в, driver.find_element_by_id('calendarTitle').send_keys('**Title**')
-The 'Des c' часть, driver.find_element_by_id('calendarMessage').send_keys('**Desc**')
И 2. Можно ли создать список с 51-элементным X-путями и мой скрипт может получить пути к элементам один за другим и циклически проходя действия? - Строка:
driver.find_element_by_xpath('**/html/body/main/div[2]/div[6]/div[3]/div[4]/div/div[2]/table/tbody/tr/td/ul/li[2]/h3/a[3]**').click()
Является ли путь элемента (1/51), который является единственной частью, изменяющейся в этих 51 копии / вставленные скрипты, упомянутые ранее, и единственная часть этого изменения пути - это ... / li [2] / ... как говорится 1,2,3 ... 49,50,51.
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("website")
driver.find_element_by_id("email").send_keys("email@email.com")
driver.find_element_by_id("password").send_keys("pass123")
driver.find_element_by_id("submit").click()
driver.get("website2")
driver.implicitly_wait(30)
driver.find_element_by_id("ui-id-6").click()
day = driver.find_element_by_xpath("/html/body/main/div[2]/div[6]/div[3]/div[4]/div/div[2]/table/tbody/tr[1]/td[2]")
ActionChains(driver).move_to_element(day).click().perform()
WebDriverWait(driver, 60).until(EC.presence_of_element_located((By.XPATH,"/html/body/main/div[2]/div[6]/div[3]/div[4]/div/div[2]/table/tbody/tr/td/ul/li[2]/h3/a[3]")))
driver.execute_script("window.scrollBy(0,500)","")
driver.find_element_by_xpath('/html/body/main/div[2]/div[6]/div[3]/div[4]/div/div[2]/table/tbody/tr/td/ul/li[2]/h3/a[3]').click()
driver.find_element_by_xpath('/html/body/main/div[2]/div[6]/div[3]/div[2]/form/div[3]/ul[1]/li[3]/i').click()
driver.find_element_by_xpath('/html/body/main/div[2]/div[6]/div[3]/div[2]/form/div[3]/ul[1]/li[2]/i').click()
driver.find_element_by_xpath('/html/body/main/div[2]/div[6]/div[3]/div[2]/form/div[3]/ul[1]/li[1]/i').click()
driver.find_element_by_id('scheduleDate').click()
day = driver.find_element_by_xpath('/html/body/div[4]/table/tbody/tr[4]/td[2]/a')
ActionChains(driver).move_to_element(day).click().perform()
driver.implicitly_wait(30)
driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')
img = driver.find_element_by_xpath('/html/body/main/div[2]/div[6]/div[3]/div[2]/form/div[2]/div/div[3]/div[1]/button[2]')
ActionChains(driver).move_to_element(img).click().perform()
driver.find_element_by_xpath('/html/body/main/div[2]/div[6]/div[4]/div/div[2]/div/ul/li/div[1]/img').click()
driver.execute_script('window.scrollTo(0, 500)')
driver.find_element_by_id("quickpostHashTag").send_keys("#entries",(Keys.RETURN))
driver.find_element_by_id("calendarTitle").clear()
driver.find_element_by_id('calendarTitle').send_keys('Title')
driver.find_element_by_id('calendarMessage').clear()
driver.find_element_by_id('calendarMessage').send_keys('Desc')
driver.implicitly_wait(30)
driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')
driver.find_element_by_xpath('/html/body/main/div[2]/div[6]/div[3]/div[2]/form/div[4]/a').click()
driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')
driver.find_element_by_xpath("/html/body/main/div[2]/div[6]/div[3]/div[2]/div/div[3]/div/button[1]").click()
driver.close()