侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

如何使用多级嵌套在XPath中选择第N个元素

2023-02-13 星期一 / 0 评论 / 0 点赞 / 196 阅读 / 1394 字

我们可以在xpath中使用:position()来修改简单 HTML块中的第n个元素,如下所示: <ul><li>first</li><li>second</li><li>third</l

... . . 我们可以在xpath中使用:position()来修改简单 HTML块中的第n个元素,如下所示:

<ul><li>first</li><li>second</li><li>third</li></ul>

我们可以按// li [position()= 2]查询元素,但是在这种情况下这不起作用:

<ul><b><li>first</li></b><b><li>second</li></b><b><li>third</li></b></ul>

我们必须使用// b [position()= 2] / li.

问题是我想为我的selenium测试创建一个用于nth-element的XPath规则,它不会与decoarational标签紧密结合.我需要一个XPath,即使在使用其他标签装饰munth-elements时也能正常工作.

我知道出于测试目的,我可以更改后端逻辑以在html中提供额外的测试句柄,例如data- *属性,但是假设我无法更改测试中的app代码.

所以,我正在搜索XPath查询,例如:“给我第三个< li>元素,无论它放在指定的页面(或页面块)中,即使它是多次嵌套的”

.

解决方法

. 请注意,[position()= 3]可以缩短为[3].那么你的问题的答案是

(//li)[3]

该位置与括号返回的节点列表有关.

. . .. ...

广告 广告

评论区