按值查找元素 Selenium/Python
Posted
技术标签:
【中文标题】按值查找元素 Selenium/Python【英文标题】:Find element by value Selenium/Python 【发布时间】:2018-10-12 15:57:29 【问题描述】:我正在使用 Selenium 和 Python 自动从我们的发电厂中提取一些数据,现在我需要单击一个元素。
问题是元素的xpaths
和我们正在监控的每个工厂的订单更改。唯一的静态信息是value
,就像第三行中的value="T_U0
。
我尝试了很多方法,但都找不到解决方案。我不能使用 index 或 child,因为参数的顺序正在改变。我尝试了 CSS 选择器,但没有成功。
这里有我的一些尝试......
driver.find_element_by_xpath("//input[@value='T_U0']").click()
driver.find_element_by_css_selector("input[@data-id-sys-abbreviation='388']").click()
我尝试了很多其他事情,但我只是拼命尝试任何事情。
我真正需要的是find_by_value
,如果有办法,请告诉我,如果没有,请告诉我该怎么做。
I need to click in some options that change order accordingly to the plant
【问题讨论】:
请不要张贴您的代码图片。只需复制粘贴并使用代码格式按钮即可。 Selenium - Python - drop-down menu option value的可能重复 @Jacobr365 我可以从 Chrome 复制 html 吗?公元前我试过了,我一次只能复制一行,结果一团糟 是的,你可以。在检查框中选择元素选项卡,然后单击一个块并右键单击复制。 【参考方案1】:问题出在第一个 xpath 上。您正在尝试在需要获取选项时定位输入。
试试这个:
driver.find_element_by_xpath("//option[@value='T_U0']").click()
【讨论】:
它确实有效!谢谢阿南德,太简单了,我看不到,再次感谢!【参考方案2】:您可以尝试通过显示的文本单击/选择元素。 伪代码:
driver.find_element_by_xpath("//option[text()="Some text"]").click()
【讨论】:
以上是关于按值查找元素 Selenium/Python的主要内容,如果未能解决你的问题,请参考以下文章