### Home Classes Methods

### In Files

- lib/selenium/client/extensions.rb

### Methods

- #active_javascript_framework
- #wait_for_ajax
- #wait_for_effects
- #wait_for_element
- #wait_for_field_value
- #wait_for_no_element
- #wait_for_no_field_value
- #wait_for_no_text
- #wait_for_not_visible
- #wait_for_text
- #wait_for_visible

### Class/Module Index

Quicksearch

- Selenium
- Selenium::Client
- Selenium::Client::Base
- Selenium::Client::CommandError
- Selenium::Client::Driver
- Selenium::Client::Extensions
- Selenium::Client::GeneratedDriver
- Selenium::Client::Idiomatic
- Selenium::Client::JavascriptExpressionBuilder
- Selenium::Client::JavascriptFrameworks
- Selenium::Client::JavascriptFrameworks::JQuery
- Selenium::Client::JavascriptFrameworks::Prototype
- Selenium::Client::Protocol
- Selenium::Client::ProtocolError
- Selenium::Client::SeleniumHelper
- Selenium::Rake
- Selenium::Rake::MissingJarFileError
- Selenium::Rake::ServerTask
- Selenium::Server
- Selenium::Server::Error
- Selenium::WebDriver
- Selenium::WebDriver::ActionBuilder
- Selenium::WebDriver::Alert
- Selenium::WebDriver::Android
- Selenium::WebDriver::Android::Bridge
- Selenium::WebDriver::BridgeHelper
- Selenium::WebDriver::Chrome
- Selenium::WebDriver::Chrome::Bridge
- Selenium::WebDriver::Chrome::Profile
- Selenium::WebDriver::Chrome::Service
- Selenium::WebDriver::Driver
- Selenium::WebDriver::DriverExtensions
- Selenium::WebDriver::DriverExtensions::HasBrowserConnection
- Selenium::WebDriver::DriverExtensions::HasInputDevices
- Selenium::WebDriver::DriverExtensions::HasLocation
- Selenium::WebDriver::DriverExtensions::HasSessionId
- Selenium::WebDriver::DriverExtensions::HasTouchScreen
- Selenium::WebDriver::DriverExtensions::HasWebStorage
- Selenium::WebDriver::DriverExtensions::Rotatable
- Selenium::WebDriver::DriverExtensions::TakesScreenshot
- Selenium::WebDriver::DriverExtensions::UploadsFiles
- Selenium::WebDriver::Element
- Selenium::WebDriver::Error
- Selenium::WebDriver::Error::ElementNotDisplayedError
- Selenium::WebDriver::Error::ElementNotSelectableError
- Selenium::WebDriver::Error::ElementNotVisibleError
- Selenium::WebDriver::Error::ExpectedError
- Selenium::WebDriver::Error::IMEEngineActivationFailedError
- Selenium::WebDriver::Error::IMENotAvailableError
- Selenium::WebDriver::Error::IndexOutOfBoundsError
- Selenium::WebDriver::Error::InvalidCookieDomainError
- Selenium::WebDriver::Error::InvalidElementCoordinatesError
- Selenium::WebDriver::Error::InvalidElementStateError
- Selenium::WebDriver::Error::InvalidSelectorError
- Selenium::WebDriver::Error::JavascriptError
- Selenium::WebDriver::Error::MoveTargetOutOfBoundsError
- Selenium::WebDriver::Error::NoAlertOpenError
- Selenium::WebDriver::Error::NoAlertPresentError
- Selenium::WebDriver::Error::NoCollectionError
- Selenium::WebDriver::Error::NoScriptResultError
- Selenium::WebDriver::Error::NoStringError
- Selenium::WebDriver::Error::NoStringLengthError
- Selenium::WebDriver::Error::NoStringWrapperError
- Selenium::WebDriver::Error::NoSuchCollectionError
- Selenium::WebDriver::Error::NoSuchDocumentError
- Selenium::WebDriver::Error::NoSuchDriverError
- Selenium::WebDriver::Error::NoSuchElementError
- Selenium::WebDriver::Error::NoSuchFrameError
- Selenium::WebDriver::Error::NoSuchWindowError
- Selenium::WebDriver::Error::NullPointerError
- Selenium::WebDriver::Error::ObsoleteElementError
- Selenium::WebDriver::Error::ScriptTimeOutError
- Selenium::WebDriver::Error::ServerError
- Selenium::WebDriver::Error::StaleElementReferenceError
- Selenium::WebDriver::Error::TimeOutError
- Selenium::WebDriver::Error::UnableToSetCookieError
- Selenium::WebDriver::Error::UnexpectedJavascriptError
- Selenium::WebDriver::Error::UnhandledAlertError
- Selenium::WebDriver::Error::UnhandledError
- Selenium::WebDriver::Error::UnknownCommandError
- Selenium::WebDriver::Error::UnknownError
- Selenium::WebDriver::Error::UnsupportedOperationError
- Selenium::WebDriver::Error::WebDriverError
- Selenium::WebDriver::Error::XPathLookupError
- Selenium::WebDriver::FileReaper
- Selenium::WebDriver::Firefox
- Selenium::WebDriver::Firefox::Binary
- Selenium::WebDriver::Firefox::Bridge
- Selenium::WebDriver::Firefox::Extension
- Selenium::WebDriver::Firefox::Launcher
- Selenium::WebDriver::Firefox::Profile
- Selenium::WebDriver::Firefox::ProfilesIni
- Selenium::WebDriver::Firefox::SocketLock
- Selenium::WebDriver::Firefox::Util
- Selenium::WebDriver::HTML5
- Selenium::WebDriver::HTML5::LocalStorage
- Selenium::WebDriver::HTML5::SessionStorage
- Selenium::WebDriver::HTML5::SharedWebStorage
- Selenium::WebDriver::IE
- Selenium::WebDriver::IE::Bridge
- Selenium::WebDriver::IE::Server
- Selenium::WebDriver::IPhone
- Selenium::WebDriver::IPhone::Bridge
- Selenium::WebDriver::JsonHelper
- Selenium::WebDriver::Keyboard
- Selenium::WebDriver::Keys
- Selenium::WebDriver::LogEntry
- Selenium::WebDriver::Mouse
- Selenium::WebDriver::Navigation
- Selenium::WebDriver::Opera
- Selenium::WebDriver::Opera::Bridge
- Selenium::WebDriver::Opera::Service
- Selenium::WebDriver::Options
- Selenium::WebDriver::PhantomJS
- Selenium::WebDriver::PhantomJS::Bridge
- Selenium::WebDriver::PhantomJS::Service
- Selenium::WebDriver::Platform
- Selenium::WebDriver::PortProber
- Selenium::WebDriver::ProfileHelper
- Selenium::WebDriver::ProfileHelper::ClassMethods
- Selenium::WebDriver::Proxy
- Selenium::WebDriver::Remote
- Selenium::WebDriver::Remote::Bridge
- Selenium::WebDriver::Remote::Capabilities
- Selenium::WebDriver::Remote::Http
- Selenium::WebDriver::Remote::Http::Common
- Selenium::WebDriver::Remote::Http::Curb
- Selenium::WebDriver::Remote::Http::Default
- Selenium::WebDriver::Remote::Http::Persistent
- Selenium::WebDriver::Remote::Response
- Selenium::WebDriver::Safari
- Selenium::WebDriver::Safari::Bridge
- Selenium::WebDriver::Safari::Browser
- Selenium::WebDriver::Safari::Extension
- Selenium::WebDriver::Safari::Server
- Selenium::WebDriver::SearchContext
- Selenium::WebDriver::SocketPoller
- Selenium::WebDriver::Support
- Selenium::WebDriver::Support::AbstractEventListener
- Selenium::WebDriver::Support::BlockEventListener
- Selenium::WebDriver::Support::Color
- Selenium::WebDriver::Support::EventFiringBridge
- Selenium::WebDriver::Support::Select
- Selenium::WebDriver::Support::Select::Escaper
- Selenium::WebDriver::TargetLocator
- Selenium::WebDriver::Timeouts
- Selenium::WebDriver::TouchActionBuilder
- Selenium::WebDriver::TouchScreen
- Selenium::WebDriver::Wait
- Selenium::WebDriver::Window
- Selenium::WebDriver::Zipper
- Base64
- Dir
- SocketError
- String

No matching classes.

# Selenium::Client::Extensions

Convenience methods not explicitely part of the protocol

### Public Instance Methods

active_javascript_framework(options) click to toggle source

    # File lib/selenium/client/extensions.rb, line 111
    def active_javascript_framework(options)
      options[:javascript_framework] || default_javascript_framework
    end

wait_for_ajax(options={}) click to toggle source

These for all Ajax request to finish (Only works if you are using prototype, the wait happens in the browser)

See davidvollbracht.com/2008/6/4/30-days-of-tech-day-3-waitforajax for more background.

    # File lib/selenium/client/extensions.rb, line 11
    def wait_for_ajax(options={})
                  builder = JavascriptExpressionBuilder.new active_javascript_framework(options)
            wait_for_condition builder.no_pending_ajax_requests.script,
                               options[:timeout_in_seconds]
    end

wait_for_effects(options={}) click to toggle source

Wait for all Prototype effects to be processed (the wait happens in the browser).

Credits to github.com/brynary/webrat/tree/master

    # File lib/selenium/client/extensions.rb, line 20
        def wait_for_effects(options={})
    builder = JavascriptExpressionBuilder.new active_javascript_framework(options)
          wait_for_condition builder.no_pending_effects.script,
                             options[:timeout_in_seconds]
        end

wait_for_element(locator, options={}) click to toggle source

Wait for an element to be present (the wait happens in the browser).

    # File lib/selenium/client/extensions.rb, line 27
    def wait_for_element(locator, options={})
      builder = JavascriptExpressionBuilder.new
      builder.find_element(locator).append("element != null;")
      wait_for_condition builder.script, options[:timeout_in_seconds]
    end

wait_for_field_value(locator, expected_value, options={}) click to toggle source

Wait for a field to get a specific value (the wait happens in the browser).

    # File lib/selenium/client/extensions.rb, line 86
    def wait_for_field_value(locator, expected_value, options={})
      builder = JavascriptExpressionBuilder.new
      builder.find_element(locator).element_value_is(expected_value)
      wait_for_condition builder.script, options[:timeout_in_seconds]
    end

wait_for_no_element(locator, options={}) click to toggle source

Wait for an element to NOT be present (the wait happens in the browser).

    # File lib/selenium/client/extensions.rb, line 34
    def wait_for_no_element(locator, options={})
      builder = JavascriptExpressionBuilder.new
      builder.find_element(locator).append("element == null;")
      wait_for_condition builder.script, options[:timeout_in_seconds]
    end

wait_for_no_field_value(locator, expected_value, options={}) click to toggle source

Wait for a field to not have a specific value (the wait happens in the browser).

    # File lib/selenium/client/extensions.rb, line 93
    def wait_for_no_field_value(locator, expected_value, options={})
      builder = JavascriptExpressionBuilder.new
      builder.find_element(locator).element_value_is_not(expected_value)
      wait_for_condition builder.script, options[:timeout_in_seconds]
    end

wait_for_no_text(pattern, options={}) click to toggle source

Wait for some text to NOT be present (the wait happens in the browser).

See wait_for_text for usage details.

    # File lib/selenium/client/extensions.rb, line 79
    def wait_for_no_text(pattern, options={})
      builder = JavascriptExpressionBuilder.new
                  builder.find_text(pattern, options).append("text_match == false;")
      wait_for_condition builder.script, options[:timeout_in_seconds]
    end

wait_for_not_visible(locator, options={}) click to toggle source

Wait for something to not be visible (the wait happens in the browser).

    # File lib/selenium/client/extensions.rb, line 106
    def wait_for_not_visible(locator, options={})
      builder = JavascriptExpressionBuilder.new
      wait_for_condition builder.not_visible(locator).script, options[:timeout_in_seconds]
    end

wait_for_text(pattern, options={}) click to toggle source

Wait for some text to be present (the wait is happening browser side).

wait_for_text will search for the given argument within the innerHTML of the current DOM. Note that this method treats a single string as a special case.

#### Parameters

wait_for_text accepts an optional hash of parameters:

- `:element` - a selenium locator for an element limiting the search scope.

- `:timeout_in_seconds` - duration in seconds after which we time out if text cannot be found.

#### Regular Expressions

In addition to plain strings, wait_for_text accepts regular expressions as the pattern specification.

#### Examples

The following are equivalent, and will match "some text" anywhere within the document:

    wait_for_text "some text"
    wait_for_text /some text/

This will match "some text" anywhere within the specified element:

    wait_for_text /some text/, :element => "container"

This will match "some text" only if it exactly matches the complete innerHTML of the specified element:

    wait_for_text "some text", :element => "container"

    # File lib/selenium/client/extensions.rb, line 70
    def wait_for_text(pattern, options={})
      builder = JavascriptExpressionBuilder.new
                  builder.find_text(pattern, options).append("text_match == true;")
      wait_for_condition builder.script, options[:timeout_in_seconds]
    end

wait_for_visible(locator, options={}) click to toggle source

Wait for something to be visible (the wait happens in the browser).

    # File lib/selenium/client/extensions.rb, line 100
    def wait_for_visible(locator, options={})
      builder = JavascriptExpressionBuilder.new
      wait_for_condition builder.visible(locator).script, options[:timeout_in_seconds]
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.