Ruby等待外部请求完成

时间:2016-06-08 04:03:29

标签: ruby-on-rails ruby phantomjs watir

我正在使用Watir和phantomjs刮一页。我注意到它会抛出NoMethodError: undefined method 'attributes' for nil:NilClass 当在控制台中运行它时,但是如果我放入调试器并逐步完成,它将起作用!我认为手动执行此操作的延迟允许请求完成。

这是我的代码:

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

我怎样才能让它等到browser.goto(map_page_url)完全返回后继续前进?

1 个答案:

答案 0 :(得分:0)

你不应该为此使用nokogiri。

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