为了账号安全,请及时绑定邮箱和手机立即绑定

Python + Selenium --如何查找动态元素

Python + Selenium --如何查找动态元素

扬帆大鱼 2021-09-28 15:54:07
我是硒的新手。我正在尝试单击一个元素,HTML 结构如下所示:<label>     <span> text </span></label>我需要单击 下的“文本” <span>,整个内容在另一个 span/div/body 等内,我正在尝试使其动态化,以便我也可以使用不同的文本找到它。我正在使用以下代码:[...]vote = input("Which option should I vote for you? :  ")option = "//label/span[contains(.,'" + vote + "')]\""option = str(option)[...]browser.find_element_by_xpath(option).click()
查看完整描述

3 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

额外的双引号使您的 xpath 无效-这里是这个,转义的一个:

 "')]\""

option字符串被构造,所述的xpath结束

//label/span[contains(.,'text')]"

"最后打破它的地方。

放下它,你会好起来的:

option = "//label/span[contains(.,'" + vote + "')]"

您不必强制转换option为字符串 - 它已经是这种类型。此外,这种字符串构造方式 - 使用字符串格式 - 更“pythonic”:

option = "//label/span[contains(.,'{}')]".format(vote)


查看完整回答
反对 回复 2021-09-28
?
富国沪深

TA贡献1790条经验 获得超9个赞

您可以使用 CSS Selector,但是在不知道 DOM 其余部分的结构的情况下,这可能不够独特,无法可靠地获取您想要的元素:

find_element_by_css_selector("label span")


查看完整回答
反对 回复 2021-09-28
  • 3 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信