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

Cam*_*oen 3 html python xml selenium xpath

我正在尝试选择div用蓝色条突出显示的:

在此输入图像描述

div这是页面上包含文本的第二个"All",所以我的尝试如下:

all_button = driver.find_element_by_xpath("//div[contains(., 'All')][2]")
Run Code Online (Sandbox Code Playgroud)

由于某种原因,当我运行我的程序时,它会选择div以黄色突出显示的。我尝试使用string()andtext()代替该contains()部分中的句点,但它产生相同的结果。有任何想法吗?

kjh*_*hes 5

代替

//div[contains(., 'All')][2]
Run Code Online (Sandbox Code Playgroud)

(//div[contains(., 'All')])[2]
Run Code Online (Sandbox Code Playgroud)

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

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

(//div[.='All'])[2]
Run Code Online (Sandbox Code Playgroud)