0

在表中,行具有以下层次结构:

//div[@class='table']
    //div[@class='some_row_n']//......some xpath...//<child with text abc>
    //div[@class='some_row_m']//......some xpath...//<child with text xyz>

我可以通过

//div[@class='table']//div[descendant::text()="abc"]

但是有没有一种方法可以让我找出父行的xpath 'some_row_n'(或'some_row_m'取决于搜索的文本)。问题是上面 xpath 部分中的项目数量.....some xpath...在设计时是未知的。

我试图实现这一点,而不必遍历每一行来查找文本。这可以极大地减少编码工作。

4

2 回答 2

1
//div[@class='table']//div[contains(@class, 'some_row')][.//*[text()='abc']]

如果带有文本 abc 的孩子是一个固定的标签名称,例如它的span标签,你可以使上面的 xpath 更精确,如下所示:

//div[@class='table']//div[contains(@class, 'some_row')][.//span[text()='abc']]
于 2018-09-25T14:02:24.707 回答
0

如果这是您的 xpath: //div[@class='table']//div[descendant::text()="abc"],那么您可以联系其父元素或使用“父”轴找到其父元素,如下所示:

<yourXpath>/parent::*

在你的情况下,它变成:

//div[@class='table']//div[descendant::text()="abc"]/parent::*

//div[@class='some_row_n']如果 row 元素是子元素 'child with text abc' 的父元素,则上面的 xpath 将获取您

于 2018-09-26T03:02:20.357 回答