Как выборочно перебирать выпадающее меню с селеном - PullRequest
0 голосов
/ 28 марта 2019

Я хочу выборочно перебирать выпадающее меню в этом случае, начиная с 2010 по текущий год (я хочу, чтобы это было открытым и законченным, так как мне нужно запустить его в будущем).

У меня естьвстречайте только предыдущие вопросы, где требуется либо один выбор, либо каждый выбор в раскрывающемся списке.

Chrome_Path = r"C:\Users\George\Desktop\chromedriver.exe"

driver.get("http://www.snookerdatabase.co.uk")

driver.find_element_by_xpath("""//*[@id="Table1"]/tbody/tr[3]/td[1]/b/a[2]""").click()

driver.find_element_by_name("year").click()

Ответы [ 2 ]

2 голосов
/ 28 марта 2019

Используйте Выбрать, чтобы выбрать значение из выпадающего списка.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.select import Select

driver = webdriver.Chrome()


driver.get("http://www.snookerdatabase.co.uk")

wait=WebDriverWait(driver,5)
wait.until(expected_conditions.element_to_be_clickable((By.XPATH,'//*[@id="Table1"]/tbody/tr[3]/td[1]/b/a[2]'))).click()

i=2010
while i<2020:
 select = Select(driver.find_element_by_name("year"))
 select.select_by_value(str(i))
 i=i+1
0 голосов
/ 28 марта 2019

Это должно помочь вам:

from selenium.webdriver.support.ui import Select
select = Select(driver.find_element_by_name('name'))
select.select_by_index(index)
select.select_by_visible_text("text")
select.select_by_value(value)
...