2017-09-25 12 views
0

주문한 품목 목록에있는 링크를 클릭하려고합니다.Watir을 사용하여 주문 목록 내의 목록 항목 요소에 액세스

This is the HTML

목록은 가장 본 동영상의 순서입니다.

첫 번째 목록 항목을 선택하려고 했으므로 broswer가 href로 이동합니다.

는 지금, 나는 정상 이야기를 선택해야 할 코드의 또 다른 라인과 유사

$website.element(:class => "gs-c-promo-heading nw-o-link gs-o-bullet__text gs-o-faux-block-link__overlay-link gel-pica-bold [email protected]").click 

가 잘 작동합니다. 이 아이디어가 효과가없는 이유는 무엇입니까?

또한이 목록의 모든 항목을 가져 와서 각 링크 텍스트를 어떻게 인쇄합니까?

+0

"작동하지 않는 것"이 ​​무슨 뜻인지 분명히 할 수 있습니까? 예외가 있습니까? 그렇지 않다면, 당신이보고있는 행동은 무엇입니까? –

+0

죄송합니다. '복합 클래스 이름이 허용되지 않음'오류가 발생했습니다. – BIGJOHN

답변

2

예외를 재현 할 수 없습니다. 그러나 예외가 주어지면 클래스 클래스 이름을 제거해야합니다. 즉 클래스 로케이터에 공백을 사용할 수 없습니다.

대부분의 클래스는 일반적인 것처럼 보이므로 제거 될 수 있습니다. 시도해 볼 수 있습니다 :

$website.element(:class => "gs-c-promo-heading").click 

클래스가 정말로 중요한 경우 Watir의 새로운 다중 클래스 로케이터를 사용할 수 있습니다. 이것은 셀레늄의 복합 클래스 검사기를 트리거하지 않는 큰 XPath를 만듭니다.

$website.lis(data_entityid: /most-popular-watched/).each do |li| 
    puts li.link.text 
end 

이 또한 첫 번째 링크를 클릭하여 더 설명 방법이 될 수 있습니다

$website.element(:class => ["gs-c-promo-heading", "nw-o-link", "gs-o-bullet__text", "gs-o-faux-block-link__overlay-link", "gel-pica-bold", "[email protected]"]).click  

내가 설명 보이는 자신의 data-entityid 속성에 따라 li 요소를 찾을 것, 모든 항목을 잡아하려면 :

$website.li(data_entityid: /most-popular-watched/).link.click 
+0

우수. 고마워요! – BIGJOHN