Module | Selenium::Client::Idiomatic |
In: |
lib/selenium/client/idiomatic.rb
|
Provide a more idiomatic API than the generated Ruby driver.
Work in progress…
Retrieves the message of a JavaScript alert generated during the previous action, or fail if there were no alerts.
Getting an alert has the same effect as manually clicking OK. If an alert is generated but you do not consume it with getAlert, the next Selenium action will fail.
Under Selenium, JavaScript alerts will NOT pop up a visible alert dialog.
Selenium does NOT support JavaScript alerts that are generated in a page‘s onload() event handler. In this case a visible dialog WILL be generated and Selenium will hang until someone manually clicks OK.
Returns a string representation of the network traffic seen by the browser, including headers, AJAX requests, status codes, and timings. When this function is called, the traffic log is cleared, so the returned content is only the traffic seen since the last call.
The network traffic is returned in the format it was requested. Valid values are: :json, :xml, or :plain.
Warning: For browser_network_traffic to work you need to start your browser session with the option "captureNetworkTraffic=true", which will force ALL traffic to go to the Remote Control proxy even for more efficient browser modes like `*firefox` and `*safari`.
Allows choice of a specific XPath libraries for Xpath evualuation in the browser (e.g. to resolve XPath locators).
`library_name’ can be:
* :ajaxslt : Google's library * :javascript-xpath : Cybozu Labs' faster library * :default : Selenium default library.
Returns whether a toggle-button (checkbox/radio) is checked. Fails if the specified element doesn‘t exist or isn‘t a toggle-button.
Clicks on a link, button, checkbox or radio button.
‘locator’ is an element locator
Using ‘options’ you can automatically wait for an event to happen after the click. e.g.
Using options you can also define an explicit timeout (:timeout_in_seconds key). Otherwise the default driver timeout is used.
Retrieves the message of a JavaScript confirmation dialog generated during the previous action.
By default, the confirm function will return true, having the same effect as manually clicking OK. This can be changed by prior execution of the chooseCancelOnNextConfirmation command.
If an confirmation is generated but you do not consume it with getConfirmation, the next Selenium action will fail.
NOTE: under Selenium, JavaScript confirmations will NOT pop up a visible dialog.
NOTE: Selenium does NOT support JavaScript confirmations that are generated in a page‘s onload() event handler. In this case a visible dialog WILL be generated and Selenium will hang until you manually click OK.
Create a new cookie whose path and domain are same with those of current page under test, unless you specified a path for this cookie explicitly.
‘nameValuePair’ is name and value of the cookie in a format "name=value" ‘optionsString’ is options for the cookie. Currently supported options include ‘path’, ‘max_age’ and ‘domain’. the optionsString‘s format is "path=/path/, max_age=60, domain=.foo.com". The order of options are irrelevant, the unit of the value of ‘max_age’ is second. Note that specifying a domain that isn‘t a subset of the current domain will usually fail.
Delete a named cookie with specified path and domain. Be careful; to delete a cookie, you need to delete it using the exact same path and domain that were used to create the cookie. If the path is wrong, or the domain is wrong, the cookie simply won‘t be deleted. Also note that specifying a domain that isn‘t a subset of the current domain will usually fail.
Since there‘s no way to discover at runtime the original path and domain of a given cookie, we‘ve added an option called ‘recurse’ to try all sub-domains of the current domain with all paths that are a subset of the current path. Beware; this option can be slow. In big-O notation, it operates in O(n*m) time, where n is the number of dots in the domain name and m is the number of slashes in the path.
‘name’ is the name of the cookie to be deleted ‘optionsString’ is options for the cookie. Currently supported options include ‘path’, ‘domain’ and ‘recurse.’ The optionsString‘s format is "path=/path/, domain=.foo.com, recurse=true". The order of options are irrelevant. Note that specifying a domain that isn‘t a subset of the current domain will usually fail.
Get execution delay in milliseconds, i.e. a pause delay following each selenium operation. By default, there is no such delay (value is 0).
Set the execution delay in milliseconds, i.e. a pause delay following each selenium operation. By default, there is no such delay.
Setting an execution can be useful to troubleshoot or capture videos
Simulates the user clicking the "back" button on their browser. Using ‘options’ you can automatically wait for an event to happen after the click. e.g.
Using options you can also define an explicit timeout (:timeout_in_seconds key). Otherwise the default driver timeout is used.
Turn on/off the automatic hightlighting of the element driven or inspected by Selenium core. Useful when recording videos
Returns the result of evaluating the specified JavaScript snippet whithin the browser.
The snippet may have multiple lines, but only the result of the last line will be returned.
Note that, by default, the snippet will run in the context of the "selenium" object itself, so this will refer to the Selenium object. Use window to refer to the window of your application, e.g. window.document.getElementById(‘foo’) If you need to use a locator to refer to a single element in your application page, you can use this.browserbot.findElement("id=foo") where "id=foo" is your locator.
Retrieves the message of a JavaScript question prompt dialog generated during the previous action.
Successful handling of the prompt requires prior execution of the answerOnNextPrompt command. If a prompt is generated but you do not get/verify it, the next Selenium action will fail.
NOTE: under Selenium, JavaScript prompts will NOT pop up a visible dialog.
NOTE: Selenium does NOT support JavaScript prompts that are generated in a page‘s onload() event handler. In this case a visible dialog WILL be generated and Selenium will hang until someone manually clicks OK.
Set the Remote Control timeout (as opposed to the client side driver timeout). This timout specifies the amount of time that Selenium Core will wait for actions to complete.
The default timeout is 30 seconds. ‘timeout’ is a timeout in seconds, after which the action will return with an error
Actions that require waiting include "open" and the "waitFor*" actions.
Returns the text from a cell of a table. The cellAddress syntax tableLocator.row.column, where row and column start at 0.
Return the text content of an HTML element (rendered text shown to the user). Works for any HTML element that contains text.
This command uses either the textContent (Mozilla-like browsers) or the innerText (IE-like browsers) of the element, which is the rendered text shown to the user.
Determines if the specified element is visible. An element can be rendered invisible by setting the CSS "visibility" property to "hidden", or the "display" property to "none", either for the element itself or one if its ancestors. This method will fail if the element is not present.
‘locator’ is an element locator
Flexible wait semantics. ait is happening browser side. Useful for testing AJAX application.
Using options you can also define an explicit timeout (:timeout_in_seconds key). Otherwise the default driver timeout is used.
Runs the specified JavaScript snippet repeatedly until it evaluates to "true". The snippet may have multiple lines, but only the result of the last line will be considered.
Note that, by default, the snippet will be run in the runner‘s test window, not in the window of your application. To get the window of your application, you can use the JavaScript snippet selenium.browserbot.getCurrentWindow(), and then run your JavaScript in there
Waits for a new page to load.
Selenium constantly keeps track of new pages loading, and sets a "newPageLoaded" flag when it first notices a page load. Running any other Selenium command after turns the flag to false. Hence, if you want to wait for a page to load, you must wait immediately after a Selenium command that caused a page-load.