2012-04-30 2 views
0

셀렌으로 웹 페이지의 특정 텍스트를 구문 분석하려고했는데 왜 내가 원하는 텍스트를 표시 할 수 없는지 알 수 없습니다. 페이지의 코드 스 니펫은 그대로입니다.방화범이 끌린 xpath 또는 css 선택기로 텍스트를 가져 오는 중 문제가 발생했습니다.

<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"텍스트를 얻고 싶습니다. 방화 광을 사용하여 xpath/cssSelector가 유효한지 확인하지만 셀레늄은 여전히 ​​텍스트를 찾을 수 없습니다. 나는 이것을 시도하고 치료하기 위해 기다림과 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()); 

입니다. 아무도 내가 이것을 어떻게 작동시킬 수 있는지 안다? 필자는 인터넷을 둘러 보았지만 아무 것도 발견되지 않았습니다.

나는 또한이 경우에 대한 테스트입니다 동등한 XPath는 //*[@id='BVRRRatingOverall_Review_Display']/div[@class='BVRRRatingNormalOutOf']/span[@class='BVRRSeparatorText']

편집 * 나는 텍스트가 실제로 웹 페이지에 표시되지 않습니다 때문에 문제라고 생각합니다. 그 텍스트는 페이지의 요소 위로 마우스를 가져 가면 볼 수 있습니다.

답변

0

등급 별 이미지의 대체 텍스트를 대신 얻을 수 있습니다.

루비 구문 (다른 언어에 대한 정확한 구문 확실하지 비슷하지만이 존재한다)이다

e = driver.find_element(:css, ".BVImgOrSprite")              
puts e.attribute('alt')                  
# => 4 out of 5  
관련 문제