python - 选择下拉列表中的一个元素 -selenium -python
问题描述
我尝试在运动下拉列表中选择运动“足球”,但无法点击它。
我尝试了 Select() 方法:
driver = webdriver.Chrome()
url = "https://www.flashscore.com/"
driver.get(url)
Team = 'Paris SG'
Type = 'Teams'
sport = 'Football'
buttonSearch = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".header__button--search"))).click()
fill_search_bar = driver.find_element(By.CSS_SELECTOR, ".input___1NGxU3-")
fill_search_bar.clear()
fill_search_bar.send_keys(Team)
driver.find_element(By.CSS_SELECTOR, ".dropDown").click()
select_sport = Select(driver.find_element(By.XPATH,"//div[contains(@class, 'dropDown__list')]"))
select_sport.select_by_visible_text(sport)
此代码返回此错误:UnexpectedTagNameException: Message: Select only works on <select> elements, not on <div>
。
这是我的第二个版本:
fill_search_bar = driver.find_element(By.CSS_SELECTOR, ".input___1NGxU3-")
fill_search_bar.clear()
fill_search_bar.send_keys(Team)
driver.find_element(By.CSS_SELECTOR, ".dropDown").click()
select_sport = WebDriverWait(driver, timeout=10).until(EC.element_to_be_clickable((By.XPATH,"//[@class='dropDown__list']/[contains(text(),'"+ sport +"')]"))).click()
此代码返回此错误:selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//div[@class='dropDown__list']/div[contains(text(),'Football')]"}
。
我怎么解决这个问题 ?
解决方案
为简单起见,我建议将wait until
课程分为两行。它完全是可选的,不会有太大的不同。
wait = WebDriverWait(driver, 300)
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".header__button--search")))
element_to_be_clicked=driver.find_element_by_css_selector(".header__button--search")
element_to_be_clicked.click()
对于第二部分,尝试使用下拉列表中的选项值:
fill_search_bar.clear()
fill_search_bar.send_keys(Team)
driver.find_element_by_xpath("//div[@class='dropDown__selectedValue dropDownValueSelected___3msxRQS']").click()
select_sport=Select(driver.find_element_by_class("dropDown__list dropDownList___3V-ppVu"))
select_sport.select_by_value('1') #football has value 1 in the list
推荐阅读
- mongodb - MongoDb $where 不接受 javascript 函数
- c# - Catia V6 - 转义用户选择框会导致错误
- javascript - 谷歌地图标记上的选择选项不起作用
- php - “无法写入缓存目录”(Symfony)
- c# - 如何在调试模式下执行 C# 编码的 ui 项目时禁用截屏
- python - XML Python - 到 SQL
- django - 如何在 Windows 中退出“python manage.py runserver”
- dart - 在 ListView.builder 中从多个来源获取数据 - Flutter
- htmlcleaner - 如何在 Java 中设置 `invalidAttributeNamePrefix` 值?
- android - 如何防止地图在回收站视图后面滚动?