作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想编写一个函数来识别特定 HTML 页面上的所有链接。我的想法是使用 XPath,通过使用诸如 //body//a[x]
之类的路径并递增 x 以通过页面上的第一个、第二个、第三个链接。
在 Chrome 中尝试此操作时,我加载了页面 http://exoplanet.eu/在 Chrome 开发者工具 JS 控制台中,我调用 $x("//body//a[1]")
。我希望页面上的第一个链接,但这会返回多个 anchor 元素的列表。调用 $x("//body//a[2]")
返回两个 anchor 元素。调用 $x("//body//a[3]")
什么也不返回。
我希望每次增加 [x]
会在页面上为我提供每个唯一链接,但它们似乎是分组的。我怎样才能重写这条路径,以便我一个接一个地选择每个 anchor 标记?
最佳答案
如果您想选择第一个链接,您的 //body//a[1]
应该是页。前一个表达式选择作为其父元素的第一个子元素的任何元素。
但无论如何,这似乎是一件很奇怪的事情。为什么你需要一个一个的链接?只需使用 //body//a
将它们全部选择为节点列表或节点集,然后遍历集合。
关于xpath - 如何使用 XPath 选择页面上的所有链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11030975/
我是一名优秀的程序员,十分优秀!