使用python + Selenium Web Driver,我试图自动选择保险网站的某些单选按钮。问题是单选按钮的ID是动态的。例如,当生成新的保险申请时,会生成新页面,并且屏幕上的单选按钮具有动态创建的ID(请参阅下面的HTML示例)
delete a
from tablea a
join tableb b on a.id=b.id
所以,使用上面的例子,我想点击带有id" subj_received_33965"的单选按钮。但是,由于元素是动态生成的,因此在下一次自动运行时id将不同(并且脚本将失败)。
我该怎么做才能让脚本始终只点击以" subj_received _"开头的元素。在此页面上或者只选择值为"已收到"?
的元素由于
答案 0 :(得分:2)
您始终可以通过CSS选择器或XPath应用部分匹配:
driver.find_element_by_css_selector("input[id^=subj_received]")
driver.find_element_by_css_selector("input[id*=subj_received]")
其中^=
表示"以"开头,*=
表示"包含"。
如果您想查看value
属性:
driver.find_element_by_css_selector("input[value=received]")
你可以检查两个:
driver.find_element_by_css_selector("input[value=received][id^=subj_received]")
答案 1 :(得分:0)
来自alecxe的输入帮助我找到了可行的解决方案。
我还让开发人员在id中添加一个整数值,这有助于找到正确的id。
以下代码段
button = self.driver.find_element_by_css_selector('[id*="2_subj_received_"]')
button.click()
感谢。