我是硒的新手。我正在尝试单击一个元素,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)
富国沪深
TA贡献1790条经验 获得超9个赞
您可以使用 CSS Selector,但是在不知道 DOM 其余部分的结构的情况下,这可能不够独特,无法可靠地获取您想要的元素:
find_element_by_css_selector("label span")
添加回答
举报
0/150
提交
取消