python - Pb 从下拉列表中选择文本
问题描述
我开始学习 Python/Selenium。
经过几次尝试,我找不到从下拉列表中提取文本的方法,我想在第一次提取后放置一个 for 循环。
这是图像: 在此处输入图像描述
链接:在此处输入链接描述
driver = webdriver.Chrome("/Users/Hassan/Downloads/chromedriver")
driver.get("http://rgphentableaux.hcp.ma/Default1/")
# Click on "Langues locales utilisées"
langues_check = driver.find_element_by_xpath("//input[@value='5']")
driver.execute_script("arguments[0].click();", langues_check)
# Cliquer sur "Régions"
region_check = driver.find_element_by_xpath("//input[@value='Region']")
driver.execute_script("arguments[0].click();", region_check)
# Cliquer sur "Choisir une région"
choisir_region = driver.find_element_by_xpath("//input[@value='Choisir une entitée']")
driver.execute_script("arguments[0].click();", choisir_region)
#select region
#element = WebDriverWait(driver,5).until(EC.element_to_be_clickable((By.XPATH, "(//li[@class='active-result highlighted'])")))
element = driver.find_element_by_xpath(".//*[@data-option-array-index='0']")
driver.execute_script("arguments[0].click();", element)
# Click on "Afficher"
afficher_click = driver.find_element_by_xpath("//input[@value='Afficher']")
driver.execute_script("arguments[0].click();", afficher_click)
解决方案
你可以这样做
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
options = WebDriverWait(driver, 10).until(ec.presence_of_all_elements_located((By.XPATH, "//ul[@class='chosen-results']/li[@class='active-result']")))
for option in options:
if option.text == 'option_you_want_to_click':
option.click()
break
推荐阅读
- java - Recyclerview 不使用 MVVM 在 Fragment 中显示数据
- python - 我应该把我的应用程序调用的 python 文件放在哪里?
- html - Twitter 小部件项目从 html 呈现
- r - Kruskall Wallis 关于比例数据
- sql-server - 如何通过sql中的日期时间逻辑获取数据
- flutter - Flutter Provider 值为 null
- docker - 运行 Chainlink 节点 - 在 MacOS/OSX 中将本地 Docker/DB 连接到 Docker/Node 问题
- ios - iOS 不处理通用访问配置文件 0x24 (URI) 蓝牙广告?
- python - 绘制聚类热图(带树状图)/Python
- java - Apache HttpClient 日志目标 IP 地址