0

セレンを含むWebページでこの特定のテキストを解析しようとしましたが、必要なテキストを表示できない理由がわかりません。ページ上のコードのスニペットはそれ自体です

<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>

「5つのうち4つ」というテキストを取得したい場所。xpath / cssSelectorが有効であることを確認するためにfirebugを使用していますが、seleniumはまだテキストを見つけることができません。これも解決するために、waitsと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());

画面に「testoutof」を印刷しようとしていますが、「test」のみを印刷しています。誰かが私がこれを機能させる方法を知っていますか?私はインターネットを見回しましたが、何も機能しませんでした。

この場合もテストしている同等のxpathは次のとおりです。//*[@id='BVRRRatingOverall_Review_Display']/div[@class='BVRRRatingNormalOutOf']/span[@class='BVRRSeparatorText']

編集*問題は、テキストが実際にWebページに表示されないためだと思います。ページ上の要素にカーソルを合わせたときにのみ表示されるテキスト。

4

1 に答える 1

0

代わりに、星評価の画像の代替テキストを取得できます。

Ruby の構文は次のとおりです (他の言語の正確な構文はわかりませんが、同様の構文が存在するはずです)。

e = driver.find_element(:css, ".BVImgOrSprite")                                                    
puts e.attribute('alt')                                                                       
# => 4 out of 5       
于 2012-04-30T16:38:21.623 に答える