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

如何在XPath中选择第二个div元素?

如何在XPath中选择第二个div元素?

富国沪深 2021-03-29 12:15:37
我正在尝试选择div以蓝色条突出显示的:这div是包含文本的页面上的第二个"All",因此我的尝试如下:all_button = driver.find_element_by_xpath("//div[contains(., 'All')][2]")由于某些原因,当我运行程序时,这会选择div以黄色突出显示的。我试过使用string()和text()代替本contains()节中的句点,但结果相同。有任何想法吗?
查看完整描述

2 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

代替

//div[contains(., 'All')][2]

(//div[contains(., 'All')])[2]

选择第二个这样的div整体,而不是限制这样的div元素处于第二个子位置。

<div>All good men</div>如果您的数据确实如下所示,则可以进一步使谓词更严格,以使用字符串相等性而不是子字符串包含(例如,避免匹配):

(//div[.='All'])[2]


查看完整回答
反对 回复 2021-04-20
?
互换的青春

TA贡献1797条经验 获得超6个赞

您可以通过添加条件来尝试对选择进行更严格的选择:


all_buttons = driver.find_element_by_xpath(

          "//class[contains(@class, 'filter-option selected') and contains(text(), 'All')]")

现在,要进行调试,请检查返回列表的大小:


print(len(all_buttons))

如果“所有”按钮列出了根据DOM收到的大小,则应该做得很好。


查看完整回答
反对 回复 2021-04-20
  • 2 回答
  • 0 关注
  • 1347 浏览
慕课专栏
更多

添加回答

举报

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