无法在 Ruby 中找到元素,简单脚本失败
unable to locate element in Ruby simple script fail
当我运行脚本时:
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>'
为什么?也许我应该添加一个等待命令,但究竟在哪里,是哪一个?
“查看详细信息”按钮的 HTML 是:
<input class="rounded_button" value="View Details" type="submit">
请注意 value
属性是 "View Details" 而不是 "View details"。 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
当我运行脚本时:
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>'
为什么?也许我应该添加一个等待命令,但究竟在哪里,是哪一个?
“查看详细信息”按钮的 HTML 是:
<input class="rounded_button" value="View Details" type="submit">
请注意 value
属性是 "View Details" 而不是 "View details"。 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