如何查询XPath匹配一个标签的属性与另一个标签的另一个属性?

时间:2013-08-08 20:42:19

标签: xpath

我正在为具有输入字段标签的网络应用编写脚本。 EG:

<label for="surname">Family Name:</label>...<input id="surname" ...></input>

我希望能够编写一个XPath表达式,它将文本“Family Name:”与标签匹配,然后从标签中获取“for”属性,并通过匹配使用它来查找关联的输入标记它的“id”标签。

我可以按照以下方式进行“工作”:

//label[contains(.,"Family Name:")]/following::input[1]

然而,对于这个网络应用程序,我认为匹配/ id会更可靠。 (EG:我怎么能确定在所有可能的布局中,标签后面的第一个输入标签是我想要的?如果使用从右到左的脚本渲染此页面的某个地方会发生什么?

我的最终目标是创建一个库函数,我们可以使用它来编写网页之前的QA脚本进行测试,当我们拥有的是一个带有标记为“Family Name:”的输入字段的图片或文档时想一想程序员最终将分配给该领域的内容。

1 个答案:

答案 0 :(得分:1)

也许这就是你要找的东西?

//input[@id = //label[contains(., "Family Name:")]/@for]

至于你的最终目标,你可能想看一下Ruby的XPath gem。你正在做的一些事情可能已经在那里实施了。 (具体来说,请查看图书馆的HTML Helpers