python - 从 a 中选择一个下拉项菜单硒 python
问题描述
所以我有点卡住了!我正在尝试从“所有评论”下拉列表中选择一个项目,但是它不像我可以选择每个项目的元素然后单击它那样交互。
相反,这些行为就像一个元素,在其标签更改时会显示不同的结果。有谁知道我如何从这个菜单中选择一个元素?
例如,使菜单从下拉菜单中选择“Google”标签。
解决方案
归纳WebDriverWait
() 和element_to_be_clickable
() 并单击All reviews
div 元素打开下拉菜单,然后根据文本选择项目。
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver=webdriver.Chrome()
driver.get("https://www.google.com/maps/place/Hilton+London+Bankside/@51.5056536,-0.1033145,17z/data=!3m1!4b1!4m10!3m9!1s0x487604af6af74cc7:0x6c4cb3cbe03e95bf!5m2!4m1!1i2!8m2!3d51.5056536!4d-0.1011258!9m1!1b1")
#Dropdown text provide here
selectItem='Agoda'
#First click on the All reviews element to open up the dorpdown element
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"div[aria-label='All reviews']"))).click()
#Select item from menu dropdown by text
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//div[@role='menuitem']//div[text()='"+ selectItem +"']"))).click()
浏览器快照:执行后
推荐阅读
- excel - Excel SUMPRODUCT/COUNTIFS #DIV/0 错误
- sql - 基于条件的 SQL 查询先前的值
- python - 如何使用 python 为远程 selenium webdrive 配置特殊代理设置?
- python-3.x - Azure Web 服务部署如何在本地工作?
- post - 从 Shopify 发送获取请求
- android - Android Studio Gradle 中的 Apache Commons?
- swift - 设备方向更改后在 collectionViewCell 内使 CAShapeLayer 无效并重绘
- php - 刀片功能,因此用户不会在 laravel 中跟随自己
- vbscript - HP UFT 错误:需要对象:“浏览器”
- symfony - Sonata Admin 视图中自定义列上的 Concat 字段