2016-06-08 3 views
0

Я использую Watir и phantomjs для очистки страницы. Я заметил, что он будет бросать NoMethodError: undefined method 'attributes' for nil:NilClass при запуске его в консоли, но если я поставлю отладчик и перейду, это сработает! Я думаю, что задержка в том, что я делаю это вручную, позволила завершить запрос.Ruby дождитесь завершения внешнего запроса

вот мой код:

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) возвращается полностью, прежде чем двигаться дальше?

ответ

0

Для этого вам не нужно использовать nokogiri.

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