2016-05-04 36 views
-1

當我運行該腳本:無法在Ruby中簡單的腳本來定位元素失敗

require 'rubygems' 
require 'watir-webdriver' 
@browser = Watir::Browser.new :firefox 

def adopt_puppy_number(num) 
    @browser.button(:value => 'View details', :index => num - 1).click 
    @browser.button(:value => 'Adopt Me!').click 
end 

@browser.goto 'http://puppies.herokuapp.com' 
adopt_puppy_number 1 
@browser.button(:value => 'Adopt Another Puppy').click 
adopt_puppy_number 2 

我得到異常:

/var/lib/gems/1.9.1/gems/watir-webdriver-0.9.1/lib/watir-webdriver/elements/element.rb:536:in `assert_element_found': unable to locate element, using {:value=>"View details", :index=>0, :tag_name=>"button"} (Watir::Exception::UnknownObjectException) 
    from /var/lib/gems/1.9.1/gems/watir-webdriver-0.9.1/lib/watir-webdriver/elements/element.rb:508:in `assert_exists' 
    from /var/lib/gems/1.9.1/gems/watir-webdriver-0.9.1/lib/watir-webdriver/elements/element.rb:114:in `click' 
    from /home/giz/Downloads/RubymineProjects/learn_watir/thirdscript_dry.rb:6:in `adopt_puppy_number' 
    from /home/giz/Downloads/RubymineProjects/learn_watir/thirdscript_dry.rb:11:in `<top (required)>' 
    from -e:1:in `load' 
    from -e:1:in `<main>' 

爲什麼?也許我應該添加一個等待命令,但是在哪裏和哪一個?

回答

1

用於查看詳細信息按鈕的HTML是:

<input class="rounded_button" value="View Details" type="submit"> 

注意,value屬性是「查看詳細信息」不「查看詳細信息」。 Watir的定位器區分大小寫,這是找不到的元素。 adopt_puppy_number方法應該是:

def adopt_puppy_number(num) 
    @browser.button(:value => 'View Details', :index => num - 1).click 
    @browser.button(:value => 'Adopt Me!').click 
end 
+0

很多很多,謝謝! – pav

相關問題