如何搜索找到的xpath的父级(具有某些父级属性)?

时间:2018-09-25 13:09:04

标签: selenium xpath

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

//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>

我可以通过

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

但是有一种方法可以计算出到父行'some_row_n'(或'some_row_m'的xpath,具体取决于搜索的文本)。问题是上面的xpath节.....some xpath...中的项目数在设计时未知。

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

2 个答案:

答案 0 :(得分: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']]

答案 1 :(得分:0)

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

<yourXpath>/parent::*

在您的情况下,它将变为:

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

如果行元素是子元素“带有文本abc的子元素”的父元素,则上述xpath将为您提供//div[@class='some_row_n']