Object
@private
Low level bridge to the remote server, through which the rest of the API works.
@private
Defines a wrapper method for a command, which ultimately calls execute.
@param name [Symbol]
name of the resulting method
@param url [String]
a URL template, which can include some arguments, much like the definitions on the server. the :session_id parameter is implicitly handled, but the remainder will become required method arguments.
@param verb [Symbol]
the appropriate http verb, such as :get, :post, or :delete
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 29 def self.command(name, verb, url) COMMANDS[name] = [verb, url.freeze] end
Initializes the bridge with the given server URL.
@param url [String] url for the remote server @param http_client [Class] an HTTP client class that implements the same interface as DefaultHttpClient @param desired_capabilities [Capabilities] an instance of Remote::Capabilities describing the capabilities you want
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 44 def initialize(opts = {}) opts = default_options.merge(opts) http_client_class = opts.delete(:http_client) desired_capabilities = opts.delete(:desired_capabilities) url = opts.delete(:url) unless opts.empty? raise ArgumentError, "unknown option#{'s' if opts.size != 1}: #{opts.inspect}" end if desired_capabilities.kind_of?(Symbol) unless Capabilities.respond_to?(desired_capabilities) raise Error::WebDriverError, "invalid desired capability: #{desired_capabilities.inspect}" end desired_capabilities = Capabilities.send(desired_capabilities) end uri = URI.parse(url) uri.path += "/" unless uri.path =~ /\/$/ @http = http_client_class.new uri @capabilities = create_session(desired_capabilities) end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 184 def addCookie(cookie) execute :addCookie, {}, :cookie => cookie end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 69 def browser @browser ||= @capabilities.browser_name.gsub(" ", "_").to_sym end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 297 def clearElement(element) execute :clearElement, :id => element end
Element functions
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 261 def clickElement(element) execute :clickElement, :id => element end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 151 def close execute :close end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 85 def create_session(desired_capabilities) resp = raw_execute :newSession, {}, :desiredCapabilities => desired_capabilities @session_id = resp['sessionId'] || raise(Error::WebDriverError, 'no sessionId in returned payload') Capabilities.json_create resp['value'] end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 196 def deleteAllCookies execute :deleteAllCookies end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 188 def deleteCookie(name) execute :deleteCookieNamed, :name => name end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 338 def dragElement(element, rigth_by, down_by) execute :dragElement, {:id => element}, :x => rigth_by, :y => down_by end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 73 def driver_extensions [] end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 175 def executeScript(script, *args) unless capabilities.javascript? raise Error::UnsupportedOperationError, "underlying webdriver instance does not support javascript" end result = execute :executeScript, {}, :script => script, :args => args unwrap_script_result result end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 200 def findElementByClassName(parent, class_name) find_element_by 'class name', class_name, parent end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 208 def findElementById(parent, id) find_element_by 'id', id, parent end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 216 def findElementByLinkText(parent, link_text) find_element_by 'link text', link_text, parent end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 232 def findElementByName(parent, name) find_element_by 'name', name, parent end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 224 def findElementByPartialLinkText(parent, link_text) find_element_by 'partial link text', link_text, parent end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 240 def findElementByTagName(parent, tag_name) find_element_by 'tag name', tag_name, parent end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 248 def findElementByXpath(parent, xpath) find_element_by 'xpath', xpath, parent end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 204 def findElementsByClassName(parent, class_name) find_elements_by 'class name', class_name, parent end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 212 def findElementsById(parent, id) find_elements_by 'id', id, parent end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 220 def findElementsByLinkText(parent, link_text) find_elements_by 'link text', link_text, parent end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 236 def findElementsByName(parent, name) find_elements_by 'name', name, parent end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 228 def findElementsByPartialLinkText(parent, link_text) find_elements_by 'partial link text', link_text, parent end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 244 def findElementsByTagName(parent, tag_name) find_elements_by 'tag name', tag_name, parent end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 252 def findElementsByXpath(parent, xpath) find_elements_by 'xpath', xpath, parent end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 92 def get(url) execute :get, {}, :url => url end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 329 def getActiveElement Element.new self, element_id_from(execute(:getActiveElement)) end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 192 def getAllCookies execute :getAllCookies end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 96 def getCapabilities Capabilities.json_create execute(:getCapabilities) end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 112 def getCurrentUrl execute :getCurrentUrl end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 163 def getCurrentWindowHandle execute :getCurrentWindowHandle end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 269 def getElementAttribute(element, name) execute :getElementAttribute, :id => element, :name => name end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 281 def getElementLocation(element) data = execute :getElementLocation, :id => element Point.new data['x'], data['y'] end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 287 def getElementSize(element) data = execute :getElementSize, :id => element Dimension.new data['width'], data['height'] end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 265 def getElementTagName(element) execute :getElementTagName, :id => element end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 277 def getElementText(element) execute :getElementText, :id => element end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 273 def getElementValue(element) execute :getElementValue, :id => element end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 325 def getElementValueOfCssProperty(element, prop) execute :getElementValueOfCssProperty, :id => element, :property_name => prop end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 120 def getPageSource execute :getPageSource end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 171 def getSpeed execute :getSpeed end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 116 def getTitle execute :getTitle end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 124 def getVisible execute :getVisible end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 159 def getWindowHandles execute :getWindowHandles end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 104 def goBack execute :goBack end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 108 def goForward execute :goForward end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 334 def hoverOverElement(element) execute :hoverOverElement, :id => element end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 309 def isElementDisplayed(element) execute :isElementDisplayed, :id => element end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 301 def isElementEnabled(element) execute :isElementEnabled, :id => element end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 305 def isElementSelected(element) execute :isElementSelected, :id => element end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 146 def quit execute :quit rescue *QUIT_ERRORS end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 155 def refresh execute :refresh end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 293 def sendKeysToElement(element, string) execute :sendKeysToElement, {:id => element}, {:value => string.split(//)} end
Returns the current session ID.
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 81 def session_id @session_id || raise(Error::WebDriverError, "no current session exists") end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 321 def setElementSelected(element) execute :setElementSelected, :id => element end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 100 def setImplicitWaitTimeout(milliseconds) execute :setImplicitWaitTimeout, {}, :ms => milliseconds end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 167 def setSpeed(value) execute :setSpeed, {}, :speed => value end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 128 def setVisible(bool) execute :setVisible, {}, bool end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 313 def submitElement(element) execute :submitElement, :id => element end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 140 def switchToDefaultContent execute :switchToFrame, {}, :id => nil end
# File remote/client/src/rb/lib/selenium/webdriver/remote/bridge.rb, line 136 def switchToFrame(id) execute :switchToFrame, {}, :id => id end
Generated with the Darkfish Rdoc Generator 2.