Sha256: a2b3860cce554d57ada3ce5a08cafbd1da271cdcca77fcd1d806ce936e3d5c17
Contents?: true
Size: 1.7 KB
Versions: 1
Compression:
Stored size: 1.7 KB
Contents
require 'selenium-webdriver' class GogoDriver attr_accessor :driver def initialize(browser=:chrome) @driver = Selenium::WebDriver.for(browser) end def go(url) logging "[VISITE] #{url}..." @driver.navigate.to(url) end def reload @driver.navigate.refresh end def find(selector) logging "[FIND] #{selector}..." @driver.find_element(css: selector) end # http://stackoverflow.com/questions/11908249/debugging-element-is-not-clickable-at-point-error def scroll(selector) logging "[SCROLL] #{selector}..." element = find(selector) @driver.driver.execute_script "window.scrollTo(#{element.location.x},#{element.location.y})" element end def finds(selector) @driver.find_elements(css: selector) end def has?(selector) !!find(selector) rescue Selenium::WebDriver::Error::NoSuchElementError false end def has_text?(text) !!@driver.find_element({xpath: "//*[text()[contains(.,\"#{text}\")]]"}) rescue Selenium::WebDriver::Error::NoSuchElementError false end def click(selector) logging "[CLICK] #{selector}..." has?(selector) ? find(selector).click : false end def submit logging "[SUBMIT] ..." $focus.submit if $focus end def method_missing(method, *args, &block) @driver.respond_to?(method) ? @driver.send(method, *args, &block) : super end private def logging(text) puts text end end class Selenium::WebDriver::Element def fill(text) $focus = self "[FILL] #{text}..." send_key(text) end def find(selector) find_element(css: selector) end def finds(selector) find_elements(css: selector) end private def logging(text) puts text end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
gogo_driver-0.1.3 | lib/gogo_driver.rb |