2016-06-08 12 views
0

Ich benutze Watir und Phantomjs, um eine Seite zu kratzen. Ich bemerkte, dass es eine NoMethodError: undefined method 'attributes' for nil:NilClass werfen würde, wenn es in der Konsole ausgeführt wird, aber wenn ich einen Debugger einsetzte und durchging, würde es funktionieren! Ich denke, dass die Verzögerung bei der manuellen Ausführung es mir erlaubte, die Anfrage zu beenden.Ruby warten bis externe Anfrage beendet

hier ist mein Code:

browser = Watir::Browser.new :phantomjs 
browser.goto(map_page_url) 
map_page = Nokogiri::HTML(browser.html) 

#undefined method 'attributes' for nil:NilClass: 
coord_url = map_page.at('p:contains("View as") a').attributes['href'].value 

Wie kann ich es bis browser.goto(map_page_url) kehrt voll, bevor sie warten bekommen?

Antwort

0

Sie sollten nicht Nokogiri dafür verwenden müssen.

browser.p(text: /View as/).link.when_present.attribute_value('href')