我的示例代码有2条评论
1-使用您发布的HTML,找不到xpath // a / li [2](我们只有3个元素带有// a / li [1])
2-假设我们有正确的代码,则需要了解Xpath中单斜杠和双斜杠之间的区别
a/b (single slash): select element that has "tag b" and "stands right after" an element that has "a tag"
例如:
<a> <b> <d> <c> </c> </d> </b></a>
和
a//b (double slash): select element that has "tag b" and is n-level-child an element that has "a tag"
例如:
<a> <c> <d> <b> </b> </d> </c></a>
所以,用你的代码
<a><li> parent 1 <div> <span >title 1</span> <span > date 1</span> <span >author 1</span> </div></li></a>
如果要获取日期信息,应使用
WebElement parent = driver.findElement(By.xpath("//a/li"));WebElement date = parent.findElement(By.xpath("div/span[contains(@class, 'child-date')]"));WebElement date = parent.findElement(By.xpath("//span[contains(@class, 'child-date')]"));代码
WebElement date = parent.findElement(By.xpath("span[contains(@class, 'child-date')]"));将带出NoSuchElementException,因为[li]标签之后没有[span]标签
希望帮助



