Wie man eine Selen/Ruby bot zu warten, bevor eine Aktion ausgeführt wird?

Baue ich eine Selen/Ruby-web-bot, der Klicks auf Elemente. Das problem ist, manchmal gibt es nicht genug Zeit für die Seite zu laden, bevor der bot entscheidet, kann es nicht finden, das element.

Was die Ruby Weg zu bekommen Selen zu warten, bevor eine Aktion ausgeführt wird? Ich würde es vorziehen, explizite warten, aber ich bin in Ordnung mit impliziten zu warten.


Ich habe versucht, die wait.until Methode:

require "selenium-webdriver"
require "nokogiri"
driver = Selenium::WebDriver.for :chrome
wait = Selenium::WebDriver::Wait.new(:timeout => 15)
driver.navigate.to "http://google.com"
driver.wait.until.find_element(:class, "gb_P").click

Aber ich bin immer der folgende Fehler:

Undefined method 'wait' for <Selenium::WebDriver>

Ich auch versucht:

require "watir-webdriver/wait"
...
driver.find_element(:class, "gb_P").wait_until.click

aber das ist auch mir eine nicht definierte Methode Fehler:

undefined method `when_present' for #<Selenium::WebDriver...>
  • Wenn Sie gerade begonnen haben, wechseln Sie zu capybara. Capybara wartet standardmäßig verwendet Selen (oder andere Treiber) unter der Haube, und die API ist einfach zu verwenden.
InformationsquelleAutor Joe Morano | 2016-03-03
Schreibe einen Kommentar