2016-05-04 6 views
-1

Als ich das Skript ausführen:derzeit keine Element in Ruby einfaches Skript finden, scheitern

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 

ich die Ausnahme erhalten:

/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>' 

Warum? Vielleicht sollte ich einen Wartebefehl hinzufügen, aber wo genau und welcher?

Antwort

1

Der HTML-Code für den Einzelheiten anschauen Button ist:

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

Beachten Sie, dass die value Attribut "Details" nicht "Details anzeigen" ist. Watirs Locators sind Groß- und Kleinschreibung, die das Element nicht gefunden wird. Die Methode sollte sein:

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

vielen vielen Dank! – pav