2016-08-10 7 views
0

Ruby와 Webdriver를 사용하여 HTML 문자열을 처리하기 시작했습니다. 나는 학습 곡선을 헤쳐 나갔다. 그러나 나는 아직도 뭔가 잘못하고있다. 또는 Watir의 일관성은 meh이다.Watir이 간단한 HTML에서 태그를 찾지 못했습니다.

나는 Watir이 두 개의 span 태그를 찾을 수 있도록하려고하는데, 그 사이에 텍스트가 있기를 원하기 때문입니다. 나는 HTML을 내 콘솔에 넣을 수있다. 내가 원하는 태그를 볼 수 있습니다. 웬일인지, 그들에게가는 모든 시도는 무효로 돌아 간다. enter image description here

+0

FWIW : 질문에 (최소한의 양의) HTML과 watir-webdriver 코드가있는 경우 문제를 재현하는 것이 훨씬 쉽습니다. 스크린 샷을 통해 더 많은 농구가 만들어집니다. – orde

답변

0

나는 nil을 반환하지 않는다고 생각합니다. puts을하고 있습니다. puts의 값은 nil입니다. puts으로 전달한 결과는 nil 직전에 표시됩니다. puts을 제거해보고 개체를 직접 가져와야합니다.

+0

그 순간 당신은 완벽한 데드처럼 느낍니다. 나는 이것을 30 분 동안 꼼짝 않고 바라 보았다. 감사! – Tanoro

1

출력이 잘못 해석됩니다. nilputs을 호출 한 값입니다. Watir 또는 요소와 상호 작용하지 않습니다. 당신은 다른 개체와 같은 일을 볼 수 있습니다 :

puts "test" 
#=> "test" 
#=> nil 

Watir과는 가고 당신이 그것으로 무언가를하도록 요청할 때 요소를 찾습니다. 예 :

browser.span(class: 'ShipmentBreadcrumb') 

단순히 Watir :: Span의 인스턴스를 만듭니다. 페이지의 요소를 찾거나 해당 요소에 대한 데이터를 검색하지 않습니다. 인스턴스에서 인스턴스를 호출하고 요소를 찾을 때까지는 그렇지 않습니다.

puts browser.span(class: 'ShipmentBreadcrumb') 
#=> #<Watir::Span> 
#=> nil 
puts browser.span(class: 'ShipmentBreadcrumb').text 
#=> "Sporting Goods" 
#=> nil