在表中,行具有以下层次结构:
//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...
中的项目数在设计时未知。
我正在尝试实现这一点,而不必遍历每一行来查找文本。这可以极大地减少编码工作。
答案 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']