속성으로 요소 가져오기
-
07-07-2019 - |
문제
나는 부족할 것이다.
내가 아는 한 watir 라이브러리는 html 요소를 가져오는 두 가지 방법을 제공합니다.
거의 각 요소(div, 버튼, 테이블, li 등)에 대해 watir는 두 가지 방법을 제공합니다.
.하나는 하나의 특정 요소만 가져오는 '단일' 방법입니다.예를 들어:
watir_instance.div(:id,'my_div_id')
watir_instance.link(:href,'my_link_href')
watir_instance.button(:class =>'my_button_class', :index => 4)
이 메소드는 단일 요소만 검색합니다.괜찮아...
.두 번째는 watir 인스턴스의 모든 요소를 검색하는 '복수형' 메서드입니다.
watir_instance.divs
watir_instance.links
watir_instance.buttons
그러나 내가 아는 한, watir는 특정 조건을 제공하는 두 개 이상의 요소를 얻는 방법을 제공하지 않습니다.
예를 들어...id:my_link_id로 모든 링크를 플래시하려면 다음과 같이 하면 매우 쉽습니다.
watir_instance.divs(:id, 'my_link_id').each do |link|
link.flash
end
hpricot를 사용하면 이 작업이 매우 쉽습니다...하지만 당신의 목표가 구문 분석이 아니라면 내가 원하는 것을 수행하는 Watir 방법을 찾을 수 없습니다.
당신이 나를 이해할 수 있기를 바랍니다 ...
건배, 후안!!
해결책
후안,
스크립트에 몇 가지 문제가 있습니다.
- 모든 링크를 플래시하고 싶다고 말했지만 다음을 사용합니다.
watir_instance.divs
.그것은해야한다watir_instance.links
- 당신은 인수를 전달합니다
divs
방법:watir_instance.divs(:id, 'my_link_id')
.그것은 단지watir_instance.divs
귀하의 예도 이상합니다.
모든 링크를 플래시하고 싶습니다. 아이디:my_link_id
내가 아는 한, ID는 페이지에서 고유해야 합니다.
다음은 다양한 예입니다.
1) 이 페이지의 모든 링크를 플래시하세요.
require "watir"
b = Watir::IE.start "http://stackoverflow.com/questions/1434697"
b.links.each do |link|
link.flash
end
2) 이 페이지에 있는 모든 링크를 플래시하세요. questions
URL(보너스:깜박이는 링크가 보이도록 페이지를 스크롤하세요.)
require "watir"
b = Watir::IE.start "http://stackoverflow.com/questions/1434697"
b.links.each do |link|
if link.href =~ /questions/
link.document.scrollintoview
link.flash
end
end
제휴하지 않습니다 StackOverflow