xPath适用于最后一页,但不适用于第一页
我想在Java中使用Selenium从NCBI中提取一些数据
问题是xPath /html/body/div[2]/div[1]/form/div[1]/div[5]/div/div[5]/div[" + i + "]/div[2]/p/a
在页面上获取每篇文章的标题并单击它们,在最后一页有效,但在第一页无效,我不明白为什么
driver.findElement(By.xpath("/html/body/div[2]/div[1]/form/div[1]/div[5]/div/div[5]/div[" + i + "]/div[2]/p/a")).click();
# 1 楼答案
我怀疑这是一个差一个错误,因为XPath的索引从1开始,并且有
div[0]
就不会匹配任何内容不过,一般来说,您的表达式非常脆弱,因为它是一个绝对表达式,路径从HTML树的根开始,一直到通过每个父级的所需元素。任何微小的布局变化都会破坏它
相反,我们可以认真简化表达式:
这将匹配每页20个链接
或者,如果您更喜欢更简洁的CSS选择器: