2017-01-20 21 views
1

watir을 사용하여 여러 링크가 아래의 오른쪽 페이지로 연결되는지 확인하는 스크립트를 작성했습니다.Browser.back이 작동하지 않습니다.

maintaining Linktext in an array 
iterating with each linktext 
verify 
navigate to the previous page to start verifying with next linktext. 

그러나 스크립트가 작동하지 않습니다 :

Links= ["Link", "Link1"] 

Links.each do |LinkValue|   
    @browser.link(:text => LinkValue).wait_until_present.click 
    fail unless @browser.text.include?(LinkValue) 
    @browser.back 
end 

은 내가 시도하고있다. 첫 번째 값 이후에 실행되지 않으며 뒤로 탐색하지 않습니다.

답변

0

당신은 해당 조건이 충족되지 않으면 예외가 발생합니다 Kernel::Fail을 요구하고있다

require 'watir' 
browser = Watir::Browser.new(:firefox) # :chrome also work 
browser.goto 'https://www.google.com/' 
browser.link(text: 'Gmail').wait_until_present.click 
sleep(10) 
browser.back 
sleep(10) 
+0

왜 '뒤로'앞뒤에 잔다? – Gopal

+0

나는'watir'가 페이지를 정확하게 브라우즈 하는지를 확인하기 위해 sleep을 사용합니다. 너는 필요 없어. –

0

나를 위해 일하는 다음 전대.

이 경우 대상 페이지에 원래 페이지에서 클릭 한 것과 동일한 링크 텍스트가 포함될 것으로 예상됩니다. 그것이 사실이 아니라면 스크립트는 예외를 발생시키고 종료합니다.

require 'watir' 

b = Watir::Browser.new :chrome 
b.goto "http://www.iana.org/domains/reserved" 

links = ["Overview", "Root Zone Management"] 

links.each do |link| 
    b.link(:text => link).click 
    fail unless b.text.include? link 
    b.back 
end 

b.close 

일부 관찰 :

여기 (링크 텍스트는 모두 원래 및 대상 페이지에 존재하기 때문에 전용 "작동") 인위적인 "작업"예입니다

  • 나는 않을 것 여기서 fail을 사용하십시오. Minitest 또는 rspec과 같은 테스트 프레임 워크를 조사해야하는데, 여기에는 응용 프로그램 동작의 유효성을 확인하는 방법이 있습니다.
  • 루비에서 변수 (및 방법 및 기호)는 snake_case이어야합니다.