Я использую Nokogiri, чтобы очистить список исполнителя от http://www.englandgallery.com/artists.php. Мне нужно использовать Watir, потому что страница загружает художников, используя javascript. Мой код выглядит следующим образомКак получить измененный DOM после Watir execute_script
browser = Watir::Browser.new(:phantomjs)
browser.goto "http://www.englandgallery.com/artists.php"
browser.execute_script("javascript:loadContent('ALL');")
indexPage = Nokogiri::HTML(browser.html)
artists = indexPage.css('a.artistlink')
artists.each do |artist|
puts artist.text
end
Страницу по умолчанию отображает только современных художников, так что вам нужно выполнить JS для загрузки всех художников. Я уверен, что loadContent('ALL')
получает исполнение и фактически загружает всех художников на страницу, но только современные художники выбраны для массива artists
. Что мне не хватает? Нужно ли мне как-то перезагрузить браузер, чтобы получить текущий DOM?
это решило, спасибо! – vorelq
Зачем вам нужно использовать Nokogiri? Использовать простой watir было бы достаточно - 'browser.a (класс:« artistlink »). Each {| artist | puts artist.text} ' –