Ho un'applicazione Ruby che utilizza Selenium Webdriver e Nokogiri. Voglio scegliere una classe, e poi per ogni div corrispondente a quella classe, voglio eseguire un'azione basata sul contenuto della div.Come posso eseguire un'azione in base al contenuto di un div con Selenium Webdriver?
Ad esempio, sto analizzando la seguente pagina:
https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies
Si tratta di una pagina di risultati di ricerca, e sto cercando il primo risultato con la parola "adozione" nella descrizione. Quindi il bot dovrebbe cercare le div con className: "result"
, per ogni controllo se il suo div .description
contiene la parola "adozione", e se lo fa, fare clic sul div .link
. In altre parole, se lo .description
non include quella parola, il bot passa al successivo .result
.
Questo è quello che ho finora, che scatta appena il primo risultato:
require "selenium-webdriver"
require "nokogiri"
driver = Selenium::WebDriver.for :chrome
driver.navigate.to "https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies"
driver.find_element(:class, "link").click