selenium-webdriver
Version:
The official WebDriver JavaScript bindings from the Selenium project
32 lines (27 loc) • 15.7 kB
HTML
<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"><meta http-equiv="Content-Language" content="en"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>selenium-webdriver/testing</title><link href="dossier.css" rel="stylesheet" type="text/css"><header><div><form><div><input type="search" placeholder="Search"></div></form></div></header><main><article><div class="codelink"><a href="source/testing/index.js.src.html#l67">View Source</a></div><h1>module selenium-webdriver/testing</h1><p>Provides wrappers around the following global functions from <a href="https://github.com/mochajs/mocha">Mocha's BDD interface</a>:</p>
<ul><li>after</li><li>afterEach</li><li>before</li><li>beforeEach</li><li>it</li><li>it.only</li><li>it.skip</li><li>xit</li></ul><p>The provided wrappers leverage the <a href="class_webdriver_promise_ControlFlow.html"><code>webdriver.promise.ControlFlow</code></a> to simplify writing asynchronous tests:</p>
<pre><code>var By = require('selenium-webdriver').By,
until = require('selenium-webdriver').until,
firefox = require('selenium-webdriver/firefox'),
test = require('selenium-webdriver/testing');
test.describe('Google Search', function() {
var driver;
test.before(function() {
driver = new firefox.Driver();
});
test.after(function() {
driver.quit();
});
test.it('should append query to title', function() {
driver.get('http://www.google.com/ncr');
driver.findElement(By.name('q')).sendKeys('webdriver');
driver.findElement(By.name('btnG')).click();
driver.wait(until.titleIs('webdriver - Google Search'), 1000);
});
});
</code></pre><p>You may conditionally suppress a test function using the exported "ignore" function. If the provided predicate returns true, the attached test case will be skipped:</p>
<pre><code>test.ignore(maybe()).it('is flaky', function() {
if (Math.random() < 0.5) throw Error();
});
function maybe() { return Math.random() < 0.5; }
</code></pre><h2>Functions</h2><div id="after" class="function"><div><h3>after(<wbr>fn)<span class="codelink"><a href="source/testing/index.js.src.html#l211">code »</a></span></h3><p>Register a function to call after the current suite finishes.</p><div><div class="fn-details"><div><b>Parameters</b></div><dl><dt>fn<code>function(): ?</code><dd><p>.</p></dl></div></div></div></div><hr class="fn-sep"><div id="afterEach" class="function"><div><h3>afterEach(<wbr>fn)<span class="codelink"><a href="source/testing/index.js.src.html#l217">code »</a></span></h3><p>Register a function to call after each test in a suite.</p><div><div class="fn-details"><div><b>Parameters</b></div><dl><dt>fn<code>function(): ?</code><dd><p>.</p></dl></div></div></div></div><hr class="fn-sep"><div id="before" class="function"><div><h3>before(<wbr>fn)<span class="codelink"><a href="source/testing/index.js.src.html#l223">code »</a></span></h3><p>Register a function to call before the current suite starts.</p><div><div class="fn-details"><div><b>Parameters</b></div><dl><dt>fn<code>function(): ?</code><dd><p>.</p></dl></div></div></div></div><hr class="fn-sep"><div id="beforeEach" class="function"><div><h3>beforeEach(<wbr>fn)<span class="codelink"><a href="source/testing/index.js.src.html#l229">code »</a></span></h3><p>Register a function to call before each test in a suite.</p><div><div class="fn-details"><div><b>Parameters</b></div><dl><dt>fn<code>function(): ?</code><dd><p>.</p></dl></div></div></div></div><hr class="fn-sep"><div id="describe" class="function"><div><h3>describe(<wbr>name, fn)<span class="codelink"><a href="source/testing/index.js.src.html#l196">code »</a></span></h3><p>Registers a new test suite.</p><div><div class="fn-details"><div><b>Parameters</b></div><dl><dt>name<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></code><dd><p>The suite name.</p><dt>fn<code>function(): ?=</code><dd><p>The suite function, or <code>undefined</code> to define a pending test suite.</p></dl></div></div></div></div><hr class="fn-sep"><div id="ignore" class="function"><div><h3>ignore(<wbr>predicateFn)<span class="codelink"><a href="source/testing/index.js.src.html#l256">code »</a></span></h3><p>Ignores the test chained to this function if the provided predicate returns true.</p><div><div class="fn-details"><div><b>Parameters</b></div><dl><dt>predicateFn<code>function(): <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">boolean</a></code><dd><p>A predicate to call to determine if the test should be suppressed. This function MUST be synchronous.</p></dl></div><div class="fn-details"><div><b>Returns</b></div><dl><dt><code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object">Object</a></code><dd><p>An object with wrapped versions of <a href="module_selenium-webdriver_testing.html#it"><code>#it()</code></a> and <a href="module_selenium-webdriver_testing.html#describe"><code>#describe()</code></a> that ignore tests as indicated by the predicate.</p></dl></div></div></div></div><hr class="fn-sep"><div id="iit" class="function"><div><h3>iit(<wbr>name, fn)<span class="codelink"><a href="source/testing/index.js.src.html#l246">code »</a></span></h3><p>An alias for <a href="module_selenium-webdriver_testing.html#it"><code>#it()</code></a> that flags the test as the only one that should be run within the current suite.</p><div><div class="fn-details"><div><b>Parameters</b></div><dl><dt>name<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></code><dd><p>The test name.</p><dt>fn<code>function(): ?=</code><dd><p>The test function, or <code>undefined</code> to define a pending test case.</p></dl></div></div></div></div><hr class="fn-sep"><div id="it" class="function"><div><h3>it(<wbr>name, fn)<span class="codelink"><a href="source/testing/index.js.src.html#l237">code »</a></span></h3><p>Add a test to the current suite.</p><div><div class="fn-details"><div><b>Parameters</b></div><dl><dt>name<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></code><dd><p>The test name.</p><dt>fn<code>function(): ?=</code><dd><p>The test function, or <code>undefined</code> to define a pending test case.</p></dl></div></div></div></div><hr class="fn-sep"><div id="xdescribe" class="function"><div><h3>xdescribe(<wbr>name, fn)<span class="codelink"><a href="source/testing/index.js.src.html#l204">code »</a></span></h3><p>Defines a suppressed test suite.</p><div><div class="fn-details"><div><b>Parameters</b></div><dl><dt>name<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></code><dd><p>The suite name.</p><dt>fn<code>function(): ?=</code><dd><p>The suite function, or <code>undefined</code> to define a pending test suite.</p></dl></div></div></div></div><hr class="fn-sep"><div id="xit" class="function"><div><h3>xit(<wbr>name, fn)<span class="codelink"><a href="source/testing/index.js.src.html#l254">code »</a></span></h3><p>Adds a test to the current suite while suppressing it so it is not run.</p><div><div class="fn-details"><div><b>Parameters</b></div><dl><dt>name<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String">string</a></code><dd><p>The test name.</p><dt>fn<code>function(): ?=</code><dd><p>The test function, or <code>undefined</code> to define a pending test case.</p></dl></div></div></div></div></article><nav><h3><a href="index.html">Overview</a></h3><div><input type="checkbox" id="nav-modules" checked/><label for="nav-modules"><h3>Modules</h3></label><div><ul><li><a href="module_selenium-webdriver.html">selenium-webdriver</a><li><a href="module_selenium-webdriver__base.html">selenium-webdriver/_base</a><li><a href="module_selenium-webdriver_builder.html">selenium-webdriver/builder</a><li><a href="module_selenium-webdriver_chrome.html">selenium-webdriver/chrome</a><li><a href="module_selenium-webdriver_error.html">selenium-webdriver/error</a><li><a href="module_selenium-webdriver_executors.html">selenium-webdriver/executors</a><li><a href="module_selenium-webdriver_firefox.html">selenium-webdriver/firefox</a><li><a href="module_selenium-webdriver_firefox_binary.html">selenium-webdriver/firefox/binary</a><li><a href="module_selenium-webdriver_firefox_extension.html">selenium-webdriver/firefox/extension</a><li><a href="module_selenium-webdriver_firefox_profile.html">selenium-webdriver/firefox/profile</a><li><a href="module_selenium-webdriver_http.html">selenium-webdriver/http</a><li><a href="module_selenium-webdriver_http_util.html">selenium-webdriver/http/util</a><li><a href="module_selenium-webdriver_ie.html">selenium-webdriver/ie</a><li><a href="module_selenium-webdriver_io.html">selenium-webdriver/io</a><li><a href="module_selenium-webdriver_io_exec.html">selenium-webdriver/io/exec</a><li><a href="module_selenium-webdriver_net.html">selenium-webdriver/net</a><li><a href="module_selenium-webdriver_net_portprober.html">selenium-webdriver/net/portprober</a><li><a href="module_selenium-webdriver_opera.html">selenium-webdriver/opera</a><li><a href="module_selenium-webdriver_phantomjs.html">selenium-webdriver/phantomjs</a><li><a href="module_selenium-webdriver_proxy.html">selenium-webdriver/proxy</a><li><a href="module_selenium-webdriver_remote.html">selenium-webdriver/remote</a><li><a href="module_selenium-webdriver_safari.html">selenium-webdriver/safari</a><li><a href="module_selenium-webdriver_testing.html">selenium-webdriver/testing</a><li><a href="module_selenium-webdriver_testing_assert.html">selenium-webdriver/testing/assert</a></ul></div></div><div><input type="checkbox" id="nav-types" checked/><label for="nav-types"><h3>Types</h3></label><div><ul><li><a href="namespace_bot.html">bot</a><li><a href="class_bot_Error.html">bot.Error</a><li><a href="enum_bot_Error_State.html">bot.Error.State</a><li><a href="enum_bot_ErrorCode.html">bot.ErrorCode</a><li><a href="namespace_bot_json.html">bot.json</a><li><a href="namespace_bot_response.html">bot.response</a><li><a href="namespace_bot_userAgent.html">bot.userAgent</a><li><a href="namespace_webdriver.html">webdriver</a><li><a href="class_webdriver_ActionSequence.html">webdriver.ActionSequence</a><li><a href="class_webdriver_Alert.html">webdriver.Alert</a><li><a href="class_webdriver_AlertPromise.html">webdriver.AlertPromise</a><li><a href="enum_webdriver_Browser.html">webdriver.Browser</a><li><a href="enum_webdriver_Button.html">webdriver.Button</a><li><a href="namespace_webdriver_By.html">webdriver.By</a><li><a href="class_webdriver_Capabilities.html">webdriver.Capabilities</a><li><a href="enum_webdriver_Capability.html">webdriver.Capability</a><li><a href="class_webdriver_Command.html">webdriver.Command</a><li><a href="interface_webdriver_CommandExecutor.html">webdriver.CommandExecutor</a><li><a href="enum_webdriver_CommandName.html">webdriver.CommandName</a><li><a href="class_webdriver_EventEmitter.html">webdriver.EventEmitter</a><li><a href="class_webdriver_FileDetector.html">webdriver.FileDetector</a><li><a href="enum_webdriver_Key.html">webdriver.Key</a><li><a href="class_webdriver_Locator.html">webdriver.Locator</a><li><a href="class_webdriver_Serializable.html">webdriver.Serializable</a><li><a href="class_webdriver_Session.html">webdriver.Session</a><li><a href="class_webdriver_TouchSequence.html">webdriver.TouchSequence</a><li><a href="class_webdriver_UnhandledAlertError.html">webdriver.UnhandledAlertError</a><li><a href="class_webdriver_WebDriver.html">webdriver.WebDriver</a><li><a href="class_webdriver_WebDriver_Logs.html">webdriver.WebDriver.Logs</a><li><a href="class_webdriver_WebDriver_Navigation.html">webdriver.WebDriver.Navigation</a><li><a href="class_webdriver_WebDriver_Options.html">webdriver.WebDriver.Options</a><li><a href="class_webdriver_WebDriver_TargetLocator.html">webdriver.WebDriver.TargetLocator</a><li><a href="class_webdriver_WebDriver_Timeouts.html">webdriver.WebDriver.Timeouts</a><li><a href="class_webdriver_WebDriver_Window.html">webdriver.WebDriver.Window</a><li><a href="class_webdriver_WebElement.html">webdriver.WebElement</a><li><a href="class_webdriver_WebElementPromise.html">webdriver.WebElementPromise</a><li><a href="namespace_webdriver_http.html">webdriver.http</a><li><a href="interface_webdriver_http_Client.html">webdriver.http.Client</a><li><a href="class_webdriver_http_Executor.html">webdriver.http.Executor</a><li><a href="class_webdriver_http_Request.html">webdriver.http.Request</a><li><a href="class_webdriver_http_Response.html">webdriver.http.Response</a><li><a href="namespace_webdriver_logging.html">webdriver.logging</a><li><a href="class_webdriver_logging_Entry.html">webdriver.logging.Entry</a><li><a href="enum_webdriver_logging_Level.html">webdriver.logging.Level</a><li><a href="class_webdriver_logging_Preferences.html">webdriver.logging.Preferences</a><li><a href="enum_webdriver_logging_Type.html">webdriver.logging.Type</a><li><a href="namespace_webdriver_promise.html">webdriver.promise</a><li><a href="class_webdriver_promise_Callback_.html">webdriver.promise.Callback_</a><li><a href="class_webdriver_promise_CancellationError.html">webdriver.promise.CancellationError</a><li><a href="class_webdriver_promise_ControlFlow.html">webdriver.promise.ControlFlow</a><li><a href="enum_webdriver_promise_ControlFlow_EventType.html">webdriver.promise.ControlFlow.EventType</a><li><a href="class_webdriver_promise_Deferred.html">webdriver.promise.Deferred</a><li><a href="class_webdriver_promise_Frame_.html">webdriver.promise.Frame_</a><li><a href="class_webdriver_promise_MicroTask_.html">webdriver.promise.MicroTask_</a><li><a href="class_webdriver_promise_Promise.html">webdriver.promise.Promise</a><li><a href="enum_webdriver_promise_Promise_State_.html">webdriver.promise.Promise.State_</a><li><a href="class_webdriver_promise_Task_.html">webdriver.promise.Task_</a><li><a href="interface_webdriver_promise_Thenable.html">webdriver.promise.Thenable</a><li><a href="namespace_webdriver_stacktrace.html">webdriver.stacktrace</a><li><a href="class_webdriver_stacktrace_Frame.html">webdriver.stacktrace.Frame</a><li><a href="class_webdriver_stacktrace_Snapshot.html">webdriver.stacktrace.Snapshot</a><li><a href="namespace_webdriver_testing.html">webdriver.testing</a><li><a href="class_webdriver_testing_Assertion.html">webdriver.testing.Assertion</a><li><a href="class_webdriver_testing_Assertion_DelegatingMatcher_.html">webdriver.testing.Assertion.DelegatingMatcher_</a><li><a href="class_webdriver_testing_ContainsMatcher.html">webdriver.testing.ContainsMatcher</a><li><a href="class_webdriver_testing_NegatedAssertion.html">webdriver.testing.NegatedAssertion</a><li><a href="namespace_webdriver_testing_assert.html">webdriver.testing.assert</a><li><a href="namespace_webdriver_testing_asserts.html">webdriver.testing.asserts</a><li><a href="namespace_webdriver_until.html">webdriver.until</a><li><a href="class_webdriver_until_Condition.html">webdriver.until.Condition</a></ul></div></div><h3><a href="Changes.html">Changes</a></h3></nav></main><div class="pre-footer"><div></div></div><footer><div><a href="https://github.com/jleyba/js-dossier">Generated by dossier</a></div></footer><script src="types.js"></script><script src="dossier.js"></script>