我一直在尝试用 selenium 解析网页中的这段特定文本,但无法弄清楚为什么我无法显示我想要的文本。页面上的代码片段是这样的
<div id="BVRRRatingOverall_Review_Display" class="BVRRRating BVRRRatingNormal BVRRRatingOverall">
<div class="BVRRLabel BVRRRatingNormalLabel"/>
<div class="BVRRRatingNormalOutOf">
<span class="BVRRNumber BVRRRatingNumber">4</span>
<span class="BVRRSeparatorText">out of</span>
<span class="BVRRNumber BVRRRatingRangeNumber">5</span>
</div>
</div>
我想在哪里获得文本“4 out of 5”。我正在使用 firebug 检查我的 xpath/cssSelector 是否有效,但 selenium 仍然找不到文本。我尝试了不同的等待和 cssSelectors 实现来尝试解决这个问题。似乎没有任何效果。我目前正在使用的代码是
String Url2 = "http://www.walmart.com/catalog/allReviews.do?product_id=16207347";
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get(Url2);
System.out.println("test" + driver.findElement(By.cssSelector(".BVRRSeparatorText")).getText());
我只是想将“test out”打印到屏幕上,但我只打印“test”。有谁知道我怎样才能让它工作?我环顾了互联网,但没有发现任何工作。
我也在为这种情况测试的等效 xpath 是//*[@id='BVRRRatingOverall_Review_Display']/div[@class='BVRRRatingNormalOutOf']/span[@class='BVRRSeparatorText']
编辑*我认为问题是因为文本从未真正显示在网页上。它的文本只有在将鼠标悬停在页面上的元素上时才能看到。