Как я могу использовать Nokogiri, чтобы найти определенный текст / слова на веб-странице? - PullRequest
4 голосов
/ 09 марта 2012

Я новичок в nokogiri, но похоже, что это был бы инструмент, который я бы использовал для очистки веб-страницы. Я ищу конкретные слова на веб-странице. Слова «Действителен», «Требования выполнены» и «Требования не выполнены». Я использую watir для проезда по сайту. В настоящее время у меня есть:

page = Nokogiri::HTML.parse(browser.html)

, чтобы получить HTML, но я не уверен, куда идти.

Спасибо за помощь!

Ответы [ 3 ]

2 голосов
/ 09 марта 2012

Если вы используете Watir для управления веб-сайтом, я бы предложил использовать Watir для проверки текста. Вы можете получить весь текст на странице, используя:

ie.text      #Where ie is a Watir::IE

Затем вы можете проверить, включены ли в него слова (по сравнению с регулярным выражением):

if ie.text =~ /Valid|Requirements Met|Requirements Not/
  #Do something if the words are on the page
end

Тем не менее, если вы ищете определенные фрагменты текста, вы можете использовать Watir, чтобы искать именно эти элементы (и избегать синтаксического анализа текста или HTML). Если вы можете предоставить пример HTML, над которым вы работаете, мы поможем найти более надежное решение.

1 голос
/ 10 марта 2012

Вы также должны иметь возможность использовать метод .text из ответа Джастина вместе со стандартной строкой ruby ​​.include?метод, который возвращает истину или ложь.

if browser.text.include? /Valid|Requirements Met|Requirements Not/  
  #code to execute if text found
else
  #code to execute if text not found
end

Это также облегчает выполнение однострочного шага проверки, если вы используете

при использовании rspec / cucumber

browser.text.should include /Valid|Requirements Met|Requirements Not/

при использованиитест: Единица

assert browser.text.include? /Valid|Requirements Met|Requirements Not/
1 голос
/ 09 марта 2012

Я не уверен, почему вы используете оба. Вы можете получить страницу, используя 'net / http' или механизировать, если вы просто хотите проверить текст. В любом случае, вы можете проверить текст в watir с помощью browser.text.match 'Valid', то же самое для nokogiri с page.text.match 'Valid'.

...