| <!DOCTYPE html><html lang="en" style="font-size:16px"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Source: lib/select.js</title><!--[if lt IE 9]> |
| <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> |
| <![endif]--><script src="scripts/third-party/hljs.js" defer="defer"></script><script src="scripts/third-party/hljs-line-num.js" defer="defer"></script><script src="scripts/third-party/popper.js" defer="defer"></script><script src="scripts/third-party/tippy.js" defer="defer"></script><script src="scripts/third-party/tocbot.min.js"></script><script>var baseURL="/",locationPathname="";baseURL=(locationPathname=document.location.pathname).substr(0,locationPathname.lastIndexOf("/")+1)</script><link rel="stylesheet" href="styles/clean-jsdoc-theme.min.css"><svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none"><defs><symbol id="copy-icon" viewbox="0 0 488.3 488.3"><g><path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124 C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124 c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z"/><path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227 c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6 V38.6C439.65,17.3,422.35,0,401.05,0z"/></g></symbol><symbol id="search-icon" viewBox="0 0 512 512"><g><g><path d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474 c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323 c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848 S326.847,409.323,225.474,409.323z"/></g></g><g><g><path d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328 c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z"/></g></g></symbol><symbol id="font-size-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></symbol><symbol id="add-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"/></symbol><symbol id="minus-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5 11h14v2H5z"/></symbol><symbol id="dark-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"/></symbol><symbol id="light-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></symbol><symbol id="reset-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"/></symbol><symbol id="down-icon" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"></path></symbol><symbol id="codepen-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"/></symbol><symbol id="close-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/></symbol><symbol id="menu-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"/></symbol></defs></svg></head><body data-theme="dark"><div class="sidebar-container"><div class="sidebar" id="sidebar"><a href="/" class="sidebar-title sidebar-title-anchor">Selenium WebDriver JavaScript API</a><div class="sidebar-items-container"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-modules"><div>Modules</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="module-selenium-webdriver_chrome.html">selenium-webdriver/chrome</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_chromium.html">selenium-webdriver/chromium</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_edge.html">selenium-webdriver/edge</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_firefox.html">selenium-webdriver/firefox</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_ie.html">selenium-webdriver/ie</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_safari.html">selenium-webdriver/safari</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Actions.html">Actions</a></div><div class="sidebar-section-children"><a href="Alert.html">Alert</a></div><div class="sidebar-section-children"><a href="AlertPromise.html">AlertPromise</a></div><div class="sidebar-section-children"><a href="ArgumentValue.html">ArgumentValue</a></div><div class="sidebar-section-children"><a href="BaseLogEntry.html">BaseLogEntry</a></div><div class="sidebar-section-children"><a href="BaseParameters.html">BaseParameters</a></div><div class="sidebar-section-children"><a href="BeforeRequestSent.html">BeforeRequestSent</a></div><div class="sidebar-section-children"><a href="BoxClipRectangle.html">BoxClipRectangle</a></div><div class="sidebar-section-children"><a href="global.html#Browser">Browser</a></div><div class="sidebar-section-children"><a href="BrowsingContext.html">BrowsingContext</a></div><div class="sidebar-section-children"><a href="BrowsingContextInfo.html">BrowsingContextInfo</a></div><div class="sidebar-section-children"><a href="BrowsingContextInspector.html">BrowsingContextInspector</a></div><div class="sidebar-section-children"><a href="BrowsingContextPartitionDescriptor.html">BrowsingContextPartitionDescriptor</a></div><div class="sidebar-section-children"><a href="Build.html">Build</a></div><div class="sidebar-section-children"><a href="Builder.html">Builder</a></div><div class="sidebar-section-children"><a href="By.html">By</a></div><div class="sidebar-section-children"><a href="BytesValue.html">BytesValue</a></div><div class="sidebar-section-children"><a href="Capabilities.html">Capabilities</a></div><div class="sidebar-section-children"><a href="CaptureScreenshotParameters.html">CaptureScreenshotParameters</a></div><div class="sidebar-section-children"><a href="ChannelValue.html">ChannelValue</a></div><div class="sidebar-section-children"><a href="ClientWindowInfo.html">ClientWindowInfo</a></div><div class="sidebar-section-children"><a href="ClipRectangle.html">ClipRectangle</a></div><div class="sidebar-section-children"><a href="Command.html">Command</a></div><div class="sidebar-section-children"><a href="Command.html">Command</a></div><div class="sidebar-section-children"><a href="Condition.html">Condition</a></div><div class="sidebar-section-children"><a href="ConsoleLogEntry.html">ConsoleLogEntry</a></div><div class="sidebar-section-children"><a href="ContinueRequestParameters.html">ContinueRequestParameters</a></div><div class="sidebar-section-children"><a href="ContinueResponseParameters.html">ContinueResponseParameters</a></div><div class="sidebar-section-children"><a href="Cookie.html">Cookie</a></div><div class="sidebar-section-children"><a href="CookieFilter.html">CookieFilter</a></div><div class="sidebar-section-children"><a href="CreateContextParameters.html">CreateContextParameters</a></div><div class="sidebar-section-children"><a href="Credential.html">Credential</a></div><div class="sidebar-section-children"><a href="DetachedShadowRootError.html">DetachedShadowRootError</a></div><div class="sidebar-section-children"><a href="Device.html">Device</a></div><div class="sidebar-section-children"><a href="DriverService.html">DriverService</a></div><div class="sidebar-section-children"><a href="DriverService.Builder.html">Builder</a></div><div class="sidebar-section-children"><a href="ElementClickInterceptedError.html">ElementClickInterceptedError</a></div><div class="sidebar-section-children"><a href="ElementClipRectangle.html">ElementClipRectangle</a></div><div class="sidebar-section-children"><a href="ElementNotInteractableError.html">ElementNotInteractableError</a></div><div class="sidebar-section-children"><a href="ElementNotSelectableError.html">ElementNotSelectableError</a></div><div class="sidebar-section-children"><a href="Entry.html">Entry</a></div><div class="sidebar-section-children"><a href="Environment.html">Environment</a></div><div class="sidebar-section-children"><a href="EvaluateResultException.html">EvaluateResultException</a></div><div class="sidebar-section-children"><a href="EvaluateResultSuccess.html">EvaluateResultSuccess</a></div><div class="sidebar-section-children"><a href="ExceptionDetails.html">ExceptionDetails</a></div><div class="sidebar-section-children"><a href="Executor.html">Executor</a></div><div class="sidebar-section-children"><a href="FetchError.html">FetchError</a></div><div class="sidebar-section-children"><a href="FetchTimingInfo.html">FetchTimingInfo</a></div><div class="sidebar-section-children"><a href="FileDetector.html">FileDetector</a></div><div class="sidebar-section-children"><a href="FileDetector.html">FileDetector</a></div><div class="sidebar-section-children"><a href="GenericLogEntry.html">GenericLogEntry</a></div><div class="sidebar-section-children"><a href="Header.html">Header</a></div><div class="sidebar-section-children"><a href="HttpClient.html">HttpClient</a></div><div class="sidebar-section-children"><a href="HttpResponse.html">HttpResponse</a></div><div class="sidebar-section-children"><a href="Index_.html">Index</a></div><div class="sidebar-section-children"><a href="Initiator.html">Initiator</a></div><div class="sidebar-section-children"><a href="Input.html">Input</a></div><div class="sidebar-section-children"><a href="InsecureCertificateError.html">InsecureCertificateError</a></div><div class="sidebar-section-children"><a href="InvalidArgumentError.html">InvalidArgumentError</a></div><div class="sidebar-section-children"><a href="InvalidCharacterError.html">InvalidCharacterError</a></div><div class="sidebar-section-children"><a href="InvalidCookieDomainError.html">InvalidCookieDomainError</a></div><div class="sidebar-section-children"><a href="InvalidCoordinatesError.html">InvalidCoordinatesError</a></div><div class="sidebar-section-children"><a href="InvalidElementStateError.html">InvalidElementStateError</a></div><div class="sidebar-section-children"><a href="InvalidSelectorError.html">InvalidSelectorError</a></div><div class="sidebar-section-children"><a href="JavascriptError.html">JavascriptError</a></div><div class="sidebar-section-children"><a href="JavascriptLogEntry.html">JavascriptLogEntry</a></div><div class="sidebar-section-children"><a href="Keyboard.html">Keyboard</a></div><div class="sidebar-section-children"><a href="Level.html">Level</a></div><div class="sidebar-section-children"><a href="LocalValue.html">LocalValue</a></div><div class="sidebar-section-children"><a href="Locator.html">Locator</a></div><div class="sidebar-section-children"><a href="LogManager.html">LogManager</a></div><div class="sidebar-section-children"><a href="Logger.html">Logger</a></div><div class="sidebar-section-children"><a href="Message.html">Message</a></div><div class="sidebar-section-children"><a href="MoveTargetOutOfBoundsError.html">MoveTargetOutOfBoundsError</a></div><div class="sidebar-section-children"><a href="NavigateResult.html">NavigateResult</a></div><div class="sidebar-section-children"><a href="NavigationInfo.html">NavigationInfo</a></div><div class="sidebar-section-children"><a href="Network.html">Network</a></div><div class="sidebar-section-children"><a href="NetworkInspector.html">NetworkInspector</a></div><div class="sidebar-section-children"><a href="NoSuchAlertError.html">NoSuchAlertError</a></div><div class="sidebar-section-children"><a href="NoSuchCookieError.html">NoSuchCookieError</a></div><div class="sidebar-section-children"><a href="NoSuchElementError.html">NoSuchElementError</a></div><div class="sidebar-section-children"><a href="NoSuchFrameError.html">NoSuchFrameError</a></div><div class="sidebar-section-children"><a href="NoSuchSessionError.html">NoSuchSessionError</a></div><div class="sidebar-section-children"><a href="NoSuchShadowRootError.html">NoSuchShadowRootError</a></div><div class="sidebar-section-children"><a href="NoSuchWindowError.html">NoSuchWindowError</a></div><div class="sidebar-section-children"><a href="PartialCookie.html">PartialCookie</a></div><div class="sidebar-section-children"><a href="PartitionDescriptor.html">PartitionDescriptor</a></div><div class="sidebar-section-children"><a href="PartitionKey.html">PartitionKey</a></div><div class="sidebar-section-children"><a href="Pointer.html">Pointer</a></div><div class="sidebar-section-children"><a href="Preferences.html">Preferences</a></div><div class="sidebar-section-children"><a href="PrintResult.html">PrintResult</a></div><div class="sidebar-section-children"><a href="ProvideResponseParameters.html">ProvideResponseParameters</a></div><div class="sidebar-section-children"><a href="RealmInfo.html">RealmInfo</a></div><div class="sidebar-section-children"><a href="ReferenceValue.html">ReferenceValue</a></div><div class="sidebar-section-children"><a href="RegExpValue.html">RegExpValue</a></div><div class="sidebar-section-children"><a href="RelativeBy.html">RelativeBy</a></div><div class="sidebar-section-children"><a href="RemoteValue.html">RemoteValue</a></div><div class="sidebar-section-children"><a href="Request.html">Request</a></div><div class="sidebar-section-children"><a href="RequestData.html">RequestData</a></div><div class="sidebar-section-children"><a href="Response.html">Response</a></div><div class="sidebar-section-children"><a href="ResponseData.html">ResponseData</a></div><div class="sidebar-section-children"><a href="ResponseStarted.html">ResponseStarted</a></div><div class="sidebar-section-children"><a href="Result.html">Result</a></div><div class="sidebar-section-children"><a href="ScriptManager.html">ScriptManager</a></div><div class="sidebar-section-children"><a href="ScriptTimeoutError.html">ScriptTimeoutError</a></div><div class="sidebar-section-children"><a href="Select.html">Select</a></div><div class="sidebar-section-children"><a href="SeleniumServer.html">SeleniumServer</a></div><div class="sidebar-section-children"><a href="SerializationOptions.html">SerializationOptions</a></div><div class="sidebar-section-children"><a href="Server.html">Server</a></div><div class="sidebar-section-children"><a href="Session.html">Session</a></div><div class="sidebar-section-children"><a href="SessionNotCreatedError.html">SessionNotCreatedError</a></div><div class="sidebar-section-children"><a href="ShadowRoot.html">ShadowRoot</a></div><div class="sidebar-section-children"><a href="ShadowRootPromise.html">ShadowRootPromise</a></div><div class="sidebar-section-children"><a href="Source.html">Source</a></div><div class="sidebar-section-children"><a href="StaleElementReferenceError.html">StaleElementReferenceError</a></div><div class="sidebar-section-children"><a href="Storage.html">Storage</a></div><div class="sidebar-section-children"><a href="StorageKeyPartitionDescriptor.html">StorageKeyPartitionDescriptor</a></div><div class="sidebar-section-children"><a href="TimeoutError.html">TimeoutError</a></div><div class="sidebar-section-children"><a href="UnableToCaptureScreenError.html">UnableToCaptureScreenError</a></div><div class="sidebar-section-children"><a href="UnableToSetCookieError.html">UnableToSetCookieError</a></div><div class="sidebar-section-children"><a href="UnexpectedAlertOpenError.html">UnexpectedAlertOpenError</a></div><div class="sidebar-section-children"><a href="UnknownCommandError.html">UnknownCommandError</a></div><div class="sidebar-section-children"><a href="UnknownMethodError.html">UnknownMethodError</a></div><div class="sidebar-section-children"><a href="UnsupportedOperationError.html">UnsupportedOperationError</a></div><div class="sidebar-section-children"><a href="UrlPattern.html">UrlPattern</a></div><div class="sidebar-section-children"><a href="VirtualAuthenticatorOptions.html">VirtualAuthenticatorOptions</a></div><div class="sidebar-section-children"><a href="WebDriver.html">WebDriver</a></div><div class="sidebar-section-children"><a href="WebDriverError.html">WebDriverError</a></div><div class="sidebar-section-children"><a href="WebElement.html">WebElement</a></div><div class="sidebar-section-children"><a href="WebElementCondition.html">WebElementCondition</a></div><div class="sidebar-section-children"><a href="WebElementPromise.html">WebElementPromise</a></div><div class="sidebar-section-children"><a href="Wheel.html">Wheel</a></div><div class="sidebar-section-children"><a href="WindowRealmInfo.html">WindowRealmInfo</a></div><div class="sidebar-section-children"><a href="Zip.html">Zip</a></div><div class="sidebar-section-children"><a href="createDriver-thenableWebDriverProxy.html">thenableWebDriverProxy</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_chrome-Driver.html">Driver</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_chrome-Options.html">Options</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_chrome-ServiceBuilder.html">ServiceBuilder</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_chromium-Driver.html">Driver</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_chromium-Extensions.html">Extensions</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_chromium-Options.html">Options</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_chromium-ServiceBuilder.html">ServiceBuilder</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_edge-Driver.html">Driver</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_edge-Options.html">Options</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_edge-ServiceBuilder.html">ServiceBuilder</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_firefox-AddonFormatError.html">AddonFormatError</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_firefox-Channel.html">Channel</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_firefox-Driver.html">Driver</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_firefox-Options.html">Options</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_firefox-ServiceBuilder.html">ServiceBuilder</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_ie-Driver.html">Driver</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_ie-Options.html">Options</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_ie-ServiceBuilder.html">ServiceBuilder</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_safari-Driver.html">Driver</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_safari-Options.html">Options</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_safari-ServiceBuilder.html">ServiceBuilder</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-interfaces"><div>Interfaces</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Action.html">Action</a></div><div class="sidebar-section-children"><a href="Client.html">Client</a></div><div class="sidebar-section-children"><a href="global.html#Config">Config</a></div><div class="sidebar-section-children"><a href="Executor.html">Executor</a></div><div class="sidebar-section-children"><a href="ISelect.html">ISelect</a></div><div class="sidebar-section-children"><a href="IWebDriver.html">IWebDriver</a></div><div class="sidebar-section-children"><a href="global.html#ManualConfig">ManualConfig</a></div><div class="sidebar-section-children"><a href="Options.html">Options</a></div><div class="sidebar-section-children"><a href="Options.Cookie.html">Cookie</a></div><div class="sidebar-section-children"><a href="global.html#PacConfig">PacConfig</a></div><div class="sidebar-section-children"><a href="SeleniumServer.Options.html">Options</a></div><div class="sidebar-section-children"><a href="ServiceOptions.html">ServiceOptions</a></div><div class="sidebar-section-children"><a href="SuiteOptions.html">SuiteOptions</a></div><div class="sidebar-section-children"><a href="TargetBrowser.html">TargetBrowser</a></div><div class="sidebar-section-children"><a href="ThenableWebDriver.html">ThenableWebDriver</a></div><div class="sidebar-section-children"><a href="Timeouts.html">Timeouts</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#Atom">Atom</a></div><div class="sidebar-section-children"><a href="global.html#Browser">Browser</a></div><div class="sidebar-section-children"><a href="global.html#Button">Button</a></div><div class="sidebar-section-children"><a href="global.html#ByHash">ByHash</a></div><div class="sidebar-section-children"><a href="global.html#Capability">Capability</a></div><div class="sidebar-section-children"><a href="global.html#CommandLineFlag">CommandLineFlag</a></div><div class="sidebar-section-children"><a href="global.html#CommandSpec">CommandSpec</a></div><div class="sidebar-section-children"><a href="global.html#CommandTransformer">CommandTransformer</a></div><div class="sidebar-section-children"><a href="global.html#Config">Config</a></div><div class="sidebar-section-children"><a href="global.html#ErrorCode">ErrorCode</a></div><div class="sidebar-section-children"><a href="global.html#EvaluateResultType">EvaluateResultType</a></div><div class="sidebar-section-children"><a href="global.html#INTERNAL_COMPUTE_OFFSET_SCRIPT">INTERNAL_COMPUTE_OFFSET_SCRIPT</a></div><div class="sidebar-section-children"><a href="global.html#InterceptPhase">InterceptPhase</a></div><div class="sidebar-section-children"><a href="global.html#Key">Key</a></div><div class="sidebar-section-children"><a href="global.html#ManualConfig">ManualConfig</a></div><div class="sidebar-section-children"><a href="global.html#Name">Name</a></div><div class="sidebar-section-children"><a href="global.html#NonPrimitiveType">NonPrimitiveType</a></div><div class="sidebar-section-children"><a href="global.html#Origin">Origin</a></div><div class="sidebar-section-children"><a href="global.html#Origin">Origin</a></div><div class="sidebar-section-children"><a href="global.html#PacConfig">PacConfig</a></div><div class="sidebar-section-children"><a href="global.html#PageLoadStrategy">PageLoadStrategy</a></div><div class="sidebar-section-children"><a href="global.html#Platform">Platform</a></div><div class="sidebar-section-children"><a href="global.html#PrimitiveType">PrimitiveType</a></div><div class="sidebar-section-children"><a href="global.html#Protocol">Protocol</a></div><div class="sidebar-section-children"><a href="global.html#RealmType">RealmType</a></div><div class="sidebar-section-children"><a href="global.html#RemoteReferenceType">RemoteReferenceType</a></div><div class="sidebar-section-children"><a href="global.html#RemoteType">RemoteType</a></div><div class="sidebar-section-children"><a href="global.html#RequestOptions">RequestOptions</a></div><div class="sidebar-section-children"><a href="global.html#ResultOwnership">ResultOwnership</a></div><div class="sidebar-section-children"><a href="global.html#SameSite">SameSite</a></div><div class="sidebar-section-children"><a href="global.html#SpecialNumberType">SpecialNumberType</a></div><div class="sidebar-section-children"><a href="global.html#StdIoOptions">StdIoOptions</a></div><div class="sidebar-section-children"><a href="global.html#THENABLE_DRIVERS">THENABLE_DRIVERS</a></div><div class="sidebar-section-children"><a href="global.html#Transport">Transport</a></div><div class="sidebar-section-children"><a href="global.html#Type">Type</a></div><div class="sidebar-section-children"><a href="global.html#Type">Type</a></div><div class="sidebar-section-children"><a href="global.html#Type">Type</a></div><div class="sidebar-section-children"><a href="global.html#Type">Type</a></div><div class="sidebar-section-children"><a href="global.html#USER_AGENT">USER_AGENT</a></div><div class="sidebar-section-children"><a href="global.html#UserPromptHandler">UserPromptHandler</a></div><div class="sidebar-section-children"><a href="global.html#W3C_COMMAND_MAP">W3C_COMMAND_MAP</a></div><div class="sidebar-section-children"><a href="global.html#ableToSwitchToFrame">ableToSwitchToFrame</a></div><div class="sidebar-section-children"><a href="global.html#addConsoleHandler">addConsoleHandler</a></div><div class="sidebar-section-children"><a href="global.html#alertIsPresent">alertIsPresent</a></div><div class="sidebar-section-children"><a href="global.html#arraysEqual">arraysEqual</a></div><div class="sidebar-section-children"><a href="global.html#binaryPaths">binaryPaths</a></div><div class="sidebar-section-children"><a href="global.html#buildPath">buildPath</a></div><div class="sidebar-section-children"><a href="global.html#buildRequest">buildRequest</a></div><div class="sidebar-section-children"><a href="global.html#builtTargets">builtTargets</a></div><div class="sidebar-section-children"><a href="global.html#check">check</a></div><div class="sidebar-section-children"><a href="global.html#checkCodePoint">checkCodePoint</a></div><div class="sidebar-section-children"><a href="global.html#checkLegacyResponse">checkLegacyResponse</a></div><div class="sidebar-section-children"><a href="global.html#checkOptions">checkOptions</a></div><div class="sidebar-section-children"><a href="global.html#checkedCall">checkedCall</a></div><div class="sidebar-section-children"><a href="global.html#checkedNodeCall">checkedNodeCall</a></div><div class="sidebar-section-children"><a href="global.html#color">color</a></div><div class="sidebar-section-children"><a href="global.html#consoleHandler">consoleHandler</a></div><div class="sidebar-section-children"><a href="global.html#copy">copy</a></div><div class="sidebar-section-children"><a href="global.html#copyDir">copyDir</a></div><div class="sidebar-section-children"><a href="global.html#createDriver">createDriver</a></div><div class="sidebar-section-children"><a href="global.html#delayed">delayed</a></div><div class="sidebar-section-children"><a href="global.html#direct">direct</a></div><div class="sidebar-section-children"><a href="global.html#elementIsDisabled">elementIsDisabled</a></div><div class="sidebar-section-children"><a href="global.html#elementIsEnabled">elementIsEnabled</a></div><div class="sidebar-section-children"><a href="global.html#elementIsNotSelected">elementIsNotSelected</a></div><div class="sidebar-section-children"><a href="global.html#elementIsNotVisible">elementIsNotVisible</a></div><div class="sidebar-section-children"><a href="global.html#elementIsSelected">elementIsSelected</a></div><div class="sidebar-section-children"><a href="global.html#elementIsVisible">elementIsVisible</a></div><div class="sidebar-section-children"><a href="global.html#elementLocated">elementLocated</a></div><div class="sidebar-section-children"><a href="global.html#elementTextContains">elementTextContains</a></div><div class="sidebar-section-children"><a href="global.html#elementTextIs">elementTextIs</a></div><div class="sidebar-section-children"><a href="global.html#elementTextMatches">elementTextMatches</a></div><div class="sidebar-section-children"><a href="global.html#elementsLocated">elementsLocated</a></div><div class="sidebar-section-children"><a href="global.html#encodeError">encodeError</a></div><div class="sidebar-section-children"><a href="global.html#ensureFileDetectorsAreEnabled">ensureFileDetectorsAreEnabled</a></div><div class="sidebar-section-children"><a href="global.html#escapeCss">escapeCss</a></div><div class="sidebar-section-children"><a href="global.html#exec">exec</a></div><div class="sidebar-section-children"><a href="global.html#executeCommand">executeCommand</a></div><div class="sidebar-section-children"><a href="global.html#exists">exists</a></div><div class="sidebar-section-children"><a href="global.html#extractId">extractId</a></div><div class="sidebar-section-children"><a href="global.html#filter">filter</a></div><div class="sidebar-section-children"><a href="global.html#filterNonW3CCaps">filterNonW3CCaps</a></div><div class="sidebar-section-children"><a href="global.html#findFreePort">findFreePort</a></div><div class="sidebar-section-children"><a href="global.html#findInPath">findInPath</a></div><div class="sidebar-section-children"><a href="global.html#formatSpawnArgs">formatSpawnArgs</a></div><div class="sidebar-section-children"><a href="global.html#fromWireValue">fromWireValue</a></div><div class="sidebar-section-children"><a href="global.html#fullyResolveKeys">fullyResolveKeys</a></div><div class="sidebar-section-children"><a href="global.html#fullyResolved">fullyResolved</a></div><div class="sidebar-section-children"><a href="global.html#getAddress">getAddress</a></div><div class="sidebar-section-children"><a href="global.html#getAvailableBrowsers">getAvailableBrowsers</a></div><div class="sidebar-section-children"><a href="global.html#getBinary">getBinary</a></div><div class="sidebar-section-children"><a href="global.html#getBinaryPaths">getBinaryPaths</a></div><div class="sidebar-section-children"><a href="global.html#getBrowsersToTestFromEnv">getBrowsersToTestFromEnv</a></div><div class="sidebar-section-children"><a href="global.html#getBrowsingContextInstance">getBrowsingContextInstance</a></div><div class="sidebar-section-children"><a href="global.html#getHostName">getHostName</a></div><div class="sidebar-section-children"><a href="global.html#getIPAddress">getIPAddress</a></div><div class="sidebar-section-children"><a href="global.html#getJavaPath">getJavaPath</a></div><div class="sidebar-section-children"><a href="global.html#getLevel">getLevel</a></div><div class="sidebar-section-children"><a href="global.html#getLogInspectorInstance">getLogInspectorInstance</a></div><div class="sidebar-section-children"><a href="global.html#getLogger">getLogger</a></div><div class="sidebar-section-children"><a href="global.html#getLoopbackAddress">getLoopbackAddress</a></div><div class="sidebar-section-children"><a href="global.html#getRequestOptions">getRequestOptions</a></div><div class="sidebar-section-children"><a href="global.html#getStatus">getStatus</a></div><div class="sidebar-section-children"><a href="global.html#getTestHook">getTestHook</a></div><div class="sidebar-section-children"><a href="global.html#headersToString">headersToString</a></div><div class="sidebar-section-children"><a href="global.html#ignore">ignore</a></div><div class="sidebar-section-children"><a href="global.html#init">init</a></div><div class="sidebar-section-children"><a href="global.html#installConsoleHandler">installConsoleHandler</a></div><div class="sidebar-section-children"><a href="global.html#isErrorResponse">isErrorResponse</a></div><div class="sidebar-section-children"><a href="global.html#isFree">isFree</a></div><div class="sidebar-section-children"><a href="global.html#isId">isId</a></div><div class="sidebar-section-children"><a href="global.html#isIdle">isIdle</a></div><div class="sidebar-section-children"><a href="global.html#isObject">isObject</a></div><div class="sidebar-section-children"><a href="global.html#isPromise">isPromise</a></div><div class="sidebar-section-children"><a href="global.html#isRetryableNetworkError">isRetryableNetworkError</a></div><div class="sidebar-section-children"><a href="global.html#isSelenium3x">isSelenium3x</a></div><div class="sidebar-section-children"><a href="global.html#legacyTimeout">legacyTimeout</a></div><div class="sidebar-section-children"><a href="global.html#load">load</a></div><div class="sidebar-section-children"><a href="global.html#locate">locate</a></div><div class="sidebar-section-children"><a href="global.html#locateWith">locateWith</a></div><div class="sidebar-section-children"><a href="global.html#manual">manual</a></div><div class="sidebar-section-children"><a href="global.html#map">map</a></div><div class="sidebar-section-children"><a href="global.html#mkdir">mkdir</a></div><div class="sidebar-section-children"><a href="global.html#mkdirp">mkdirp</a></div><div class="sidebar-section-children"><a href="global.html#of">of</a></div><div class="sidebar-section-children"><a href="global.html#pac">pac</a></div><div class="sidebar-section-children"><a href="global.html#pad">pad</a></div><div class="sidebar-section-children"><a href="global.html#parseHttpResponse">parseHttpResponse</a></div><div class="sidebar-section-children"><a href="global.html#path">path</a></div><div class="sidebar-section-children"><a href="global.html#projectRoot">projectRoot</a></div><div class="sidebar-section-children"><a href="global.html#read">read</a></div><div class="sidebar-section-children"><a href="global.html#removeConsoleHandler">removeConsoleHandler</a></div><div class="sidebar-section-children"><a href="global.html#requireAtom">requireAtom</a></div><div class="sidebar-section-children"><a href="global.html#resolveCommandLineFlags">resolveCommandLineFlags</a></div><div class="sidebar-section-children"><a href="global.html#resolveWaitMessage">resolveWaitMessage</a></div><div class="sidebar-section-children"><a href="global.html#rmDir">rmDir</a></div><div class="sidebar-section-children"><a href="global.html#sendIndex">sendIndex</a></div><div class="sidebar-section-children"><a href="global.html#sendRequest">sendRequest</a></div><div class="sidebar-section-children"><a href="global.html#serialize">serialize</a></div><div class="sidebar-section-children"><a href="global.html#setFileDetector">setFileDetector</a></div><div class="sidebar-section-children"><a href="global.html#shouldRetryRequest">shouldRetryRequest</a></div><div class="sidebar-section-children"><a href="global.html#socks">socks</a></div><div class="sidebar-section-children"><a href="global.html#splitHostAndPort">splitHostAndPort</a></div><div class="sidebar-section-children"><a href="global.html#stalenessOf">stalenessOf</a></div><div class="sidebar-section-children"><a href="global.html#start">start</a></div><div class="sidebar-section-children"><a href="global.html#startSeleniumServer">startSeleniumServer</a></div><div class="sidebar-section-children"><a href="global.html#stat">stat</a></div><div class="sidebar-section-children"><a href="global.html#stop">stop</a></div><div class="sidebar-section-children"><a href="global.html#suite">suite</a></div><div class="sidebar-section-children"><a href="global.html#suite">suite</a></div><div class="sidebar-section-children"><a href="global.html#system">system</a></div><div class="sidebar-section-children"><a href="global.html#thenFinally">thenFinally</a></div><div class="sidebar-section-children"><a href="global.html#throwDecodedError">throwDecodedError</a></div><div class="sidebar-section-children"><a href="global.html#titleContains">titleContains</a></div><div class="sidebar-section-children"><a href="global.html#titleIs">titleIs</a></div><div class="sidebar-section-children"><a href="global.html#titleMatches">titleMatches</a></div><div class="sidebar-section-children"><a href="global.html#tmpDir">tmpDir</a></div><div class="sidebar-section-children"><a href="global.html#tmpFile">tmpFile</a></div><div class="sidebar-section-children"><a href="global.html#toExecuteAtomCommand">toExecuteAtomCommand</a></div><div class="sidebar-section-children"><a href="global.html#toMap">toMap</a></div><div class="sidebar-section-children"><a href="global.html#toWireValue">toWireValue</a></div><div class="sidebar-section-children"><a href="global.html#tryParse">tryParse</a></div><div class="sidebar-section-children"><a href="global.html#unlink">unlink</a></div><div class="sidebar-section-children"><a href="global.html#unzip">unzip</a></div><div class="sidebar-section-children"><a href="global.html#url">url</a></div><div class="sidebar-section-children"><a href="global.html#urlContains">urlContains</a></div><div class="sidebar-section-children"><a href="global.html#urlIs">urlIs</a></div><div class="sidebar-section-children"><a href="global.html#urlMatches">urlMatches</a></div><div class="sidebar-section-children"><a href="global.html#waitForServer">waitForServer</a></div><div class="sidebar-section-children"><a href="global.html#waitForUrl">waitForUrl</a></div><div class="sidebar-section-children"><a href="global.html#walkDir">walkDir</a></div><div class="sidebar-section-children"><a href="global.html#whereIs">whereIs</a></div><div class="sidebar-section-children"><a href="global.html#withTagName">withTagName</a></div><div class="sidebar-section-children"><a href="global.html#write">write</a></div></div></div></div></div><div class="navbar-container" id="VuAckcnZhf"><nav class="navbar"><div class="navbar-left-items"><div class="navbar-item"><a id="github" href="https://github.com/SeleniumHQ/selenium" target="">GitHub</a></div><div class="navbar-item"><a id="npm" href="https://www.npmjs.com/package/selenium-webdriver" target="">npm</a></div></div><div class="navbar-right-items"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div><nav></nav></nav></div><div class="toc-container"><div class="toc-content"><span class="bold">On this page</span><div id="eed4d2a0bfd64539bb9df78095dec881"></div></div></div><div class="body-wrapper"><div class="main-content"><div class="main-wrapper"><section id="source-page" class="source-page"><header><h1 id="title" class="has-anchor">lib_select.js</h1></header><article><pre class="prettyprint source lang-js"><code>// Licensed to the Software Freedom Conservancy (SFC) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The SFC licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| |
| /* |
| * Licensed to the Software Freedom Conservancy (SFC) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The SFC licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| 'use strict' |
| |
| const { By } = require('./by') |
| const error = require('./error') |
| |
| /** |
| * ISelect interface makes a protocol for all kind of select elements (standard html and custom |
| * model) |
| * |
| * @interface |
| */ |
| // eslint-disable-next-line no-unused-vars |
| class ISelect { |
| /** |
| * @return {!Promise<boolean>} Whether this select element supports selecting multiple options at the same time? This |
| * is done by checking the value of the "multiple" attribute. |
| */ |
| isMultiple() {} |
| |
| /** |
| * @return {!Promise<!Array<!WebElement>>} All options belonging to this select tag |
| */ |
| getOptions() {} |
| |
| /** |
| * @return {!Promise<!Array<!WebElement>>} All selected options belonging to this select tag |
| */ |
| getAllSelectedOptions() {} |
| |
| /** |
| * @return {!Promise<!WebElement>} The first selected option in this select tag (or the currently selected option in a |
| * normal select) |
| */ |
| getFirstSelectedOption() {} |
| |
| /** |
| * Select all options that display text matching the argument. That is, when given "Bar" this |
| * would select an option like: |
| * |
| * &lt;option value="foo"&gt;Bar&lt;/option&gt; |
| * |
| * @param {string} text The visible text to match against |
| * @return {Promise<void>} |
| */ |
| selectByVisibleText(text) {} // eslint-disable-line |
| |
| /** |
| * Select all options that have a value matching the argument. That is, when given "foo" this |
| * would select an option like: |
| * |
| * &lt;option value="foo"&gt;Bar&lt;/option&gt; |
| * |
| * @param {string} value The value to match against |
| * @return {Promise<void>} |
| */ |
| selectByValue(value) {} // eslint-disable-line |
| |
| /** |
| * Select the option at the given index. This is done by examining the "index" attribute of an |
| * element, and not merely by counting. |
| * |
| * @param {Number} index The option at this index will be selected |
| * @return {Promise<void>} |
| */ |
| selectByIndex(index) {} // eslint-disable-line |
| |
| /** |
| * Clear all selected entries. This is only valid when the SELECT supports multiple selections. |
| * |
| * @return {Promise<void>} |
| */ |
| deselectAll() {} |
| |
| /** |
| * Deselect all options that display text matching the argument. That is, when given "Bar" this |
| * would deselect an option like: |
| * |
| * &lt;option value="foo"&gt;Bar&lt;/option&gt; |
| * |
| * @param {string} text The visible text to match against |
| * @return {Promise<void>} |
| */ |
| deselectByVisibleText(text) {} // eslint-disable-line |
| |
| /** |
| * Deselect all options that have a value matching the argument. That is, when given "foo" this |
| * would deselect an option like: |
| * |
| * @param {string} value The value to match against |
| * @return {Promise<void>} |
| */ |
| deselectByValue(value) {} // eslint-disable-line |
| |
| /** |
| * Deselect the option at the given index. This is done by examining the "index" attribute of an |
| * element, and not merely by counting. |
| * |
| * @param {Number} index The option at this index will be deselected |
| * @return {Promise<void>} |
| */ |
| deselectByIndex(index) {} // eslint-disable-line |
| } |
| |
| /** |
| * @implements ISelect |
| */ |
| class Select { |
| /** |
| * Create an Select Element |
| * @param {WebElement} element Select WebElement. |
| */ |
| constructor(element) { |
| if (element === null) { |
| throw new Error(`Element must not be null. Please provide a valid <select> element.`) |
| } |
| |
| this.element = element |
| |
| this.element.getAttribute('tagName').then(function (tagName) { |
| if (tagName.toLowerCase() !== 'select') { |
| throw new Error(`Select only works on <select> elements`) |
| } |
| }) |
| |
| this.element.getAttribute('multiple').then((multiple) => { |
| this.multiple = multiple !== null && multiple !== 'false' |
| }) |
| } |
| |
| /** |
| * |
| * Select option with specified index. |
| * |
| * <example> |
| <select id="selectbox"> |
| <option value="1">Option 1</option> |
| <option value="2">Option 2</option> |
| <option value="3">Option 3</option> |
| </select> |
| const selectBox = await driver.findElement(By.id("selectbox")); |
| await selectObject.selectByIndex(1); |
| * </example> |
| * |
| * @param index |
| */ |
| async selectByIndex(index) { |
| if (index < 0) { |
| throw new Error('Index needs to be 0 or any other positive number') |
| } |
| |
| let options = await this.element.findElements(By.tagName('option')) |
| |
| if (options.length === 0) { |
| throw new Error("Select element doesn't contain any option element") |
| } |
| |
| if (options.length - 1 < index) { |
| throw new Error( |
| `Option with index "${index}" not found. Select element only contains ${options.length - 1} option elements`, |
| ) |
| } |
| |
| for (let option of options) { |
| if ((await option.getAttribute('index')) === index.toString()) { |
| await this.setSelected(option) |
| } |
| } |
| } |
| |
| /** |
| * |
| * Select option by specific value. |
| * |
| * <example> |
| <select id="selectbox"> |
| <option value="1">Option 1</option> |
| <option value="2">Option 2</option> |
| <option value="3">Option 3</option> |
| </select> |
| const selectBox = await driver.findElement(By.id("selectbox")); |
| await selectObject.selectByVisibleText("Option 2"); |
| * </example> |
| * |
| * |
| * @param {string} value value of option element to be selected |
| */ |
| async selectByValue(value) { |
| let matched = false |
| let isMulti = await this.isMultiple() |
| |
| let options = await this.element.findElements(By.xpath('.//option[@value = ' + escapeQuotes(value) + ']')) |
| |
| for (let option of options) { |
| await this.setSelected(option) |
| |
| if (!isMulti) { |
| return |
| } |
| matched = true |
| } |
| |
| if (!matched) { |
| throw new Error(`Cannot locate option with value: ${value}`) |
| } |
| } |
| |
| /** |
| * |
| * Select option with displayed text matching the argument. |
| * |
| * <example> |
| <select id="selectbox"> |
| <option value="1">Option 1</option> |
| <option value="2">Option 2</option> |
| <option value="3">Option 3</option> |
| </select> |
| const selectBox = await driver.findElement(By.id("selectbox")); |
| await selectObject.selectByVisibleText("Option 2"); |
| * </example> |
| * |
| * @param {String|Number} text text of option element to get selected |
| * |
| */ |
| async selectByVisibleText(text) { |
| text = typeof text === 'number' ? text.toString() : text |
| |
| const xpath = './/option[normalize-space(.) = ' + escapeQuotes(text) + ']' |
| |
| const options = await this.element.findElements(By.xpath(xpath)) |
| |
| for (let option of options) { |
| await this.setSelected(option) |
| if (!(await this.isMultiple())) { |
| return |
| } |
| } |
| |
| let matched = Array.isArray(options) && options.length > 0 |
| |
| if (!matched && text.includes(' ')) { |
| const subStringWithoutSpace = getLongestSubstringWithoutSpace(text) |
| let candidates |
| if ('' === subStringWithoutSpace) { |
| candidates = await this.element.findElements(By.tagName('option')) |
| } else { |
| const xpath = './/option[contains(., ' + escapeQuotes(subStringWithoutSpace) + ')]' |
| candidates = await this.element.findElements(By.xpath(xpath)) |
| } |
| |
| const trimmed = text.trim() |
| |
| for (let option of candidates) { |
| const optionText = await option.getText() |
| if (trimmed === optionText.trim()) { |
| await this.setSelected(option) |
| if (!(await this.isMultiple())) { |
| return |
| } |
| matched = true |
| } |
| } |
| } |
| |
| if (!matched) { |
| throw new Error(`Cannot locate option with text: ${text}`) |
| } |
| } |
| |
| /** |
| * Returns a list of all options belonging to this select tag |
| * @returns {!Promise<!Array<!WebElement>>} |
| */ |
| async getOptions() { |
| return await this.element.findElements({ tagName: 'option' }) |
| } |
| |
| /** |
| * Returns a boolean value if the select tag is multiple |
| * @returns {Promise<boolean>} |
| */ |
| async isMultiple() { |
| return this.multiple |
| } |
| |
| /** |
| * Returns a list of all selected options belonging to this select tag |
| * |
| * @returns {Promise<void>} |
| */ |
| async getAllSelectedOptions() { |
| const opts = await this.getOptions() |
| const results = [] |
| for (let options of opts) { |
| if (await options.isSelected()) { |
| results.push(options) |
| } |
| } |
| return results |
| } |
| |
| /** |
| * Returns first Selected Option |
| * @returns {Promise<Element>} |
| */ |
| async getFirstSelectedOption() { |
| return (await this.getAllSelectedOptions())[0] |
| } |
| |
| /** |
| * Deselects all selected options |
| * @returns {Promise<void>} |
| */ |
| async deselectAll() { |
| if (!this.isMultiple()) { |
| throw new Error('You may only deselect all options of a multi-select') |
| } |
| |
| const options = await this.getOptions() |
| |
| for (let option of options) { |
| if (await option.isSelected()) { |
| await option.click() |
| } |
| } |
| } |
| |
| /** |
| * |
| * @param {string|Number}text text of option to deselect |
| * @returns {Promise<void>} |
| */ |
| async deselectByVisibleText(text) { |
| if (!(await this.isMultiple())) { |
| throw new Error('You may only deselect options of a multi-select') |
| } |
| |
| /** |
| * convert value into string |
| */ |
| text = typeof text === 'number' ? text.toString() : text |
| |
| const optionElement = await this.element.findElement( |
| By.xpath('.//option[normalize-space(.) = ' + escapeQuotes(text) + ']'), |
| ) |
| if (await optionElement.isSelected()) { |
| await optionElement.click() |
| } |
| } |
| |
| /** |
| * |
| * @param {Number} index index of option element to deselect |
| * Deselect the option at the given index. |
| * This is done by examining the "index" |
| * attribute of an element, and not merely by counting. |
| * @returns {Promise<void>} |
| */ |
| async deselectByIndex(index) { |
| if (!(await this.isMultiple())) { |
| throw new Error('You may only deselect options of a multi-select') |
| } |
| |
| if (index < 0) { |
| throw new Error('Index needs to be 0 or any other positive number') |
| } |
| |
| let options = await this.element.findElements(By.tagName('option')) |
| |
| if (options.length === 0) { |
| throw new Error("Select element doesn't contain any option element") |
| } |
| |
| if (options.length - 1 < index) { |
| throw new Error( |
| `Option with index "${index}" not found. Select element only contains ${options.length - 1} option elements`, |
| ) |
| } |
| |
| for (let option of options) { |
| if ((await option.getAttribute('index')) === index.toString()) { |
| if (await option.isSelected()) { |
| await option.click() |
| } |
| } |
| } |
| } |
| |
| /** |
| * |
| * @param {String} value value of an option to deselect |
| * @returns {Promise<void>} |
| */ |
| async deselectByValue(value) { |
| if (!(await this.isMultiple())) { |
| throw new Error('You may only deselect options of a multi-select') |
| } |
| |
| let matched = false |
| |
| let options = await this.element.findElements(By.xpath('.//option[@value = ' + escapeQuotes(value) + ']')) |
| |
| if (options.length === 0) { |
| throw new Error(`Cannot locate option with value: ${value}`) |
| } |
| |
| for (let option of options) { |
| if (await option.isSelected()) { |
| await option.click() |
| } |
| matched = true |
| } |
| |
| if (!matched) { |
| throw new Error(`Cannot locate option with value: ${value}`) |
| } |
| } |
| |
| async setSelected(option) { |
| if (!(await option.isSelected())) { |
| if (!(await option.isEnabled())) { |
| throw new error.UnsupportedOperationError(`You may not select a disabled option`) |
| } |
| await option.click() |
| } |
| } |
| } |
| |
| function escapeQuotes(toEscape) { |
| if (toEscape.includes(`"`) && toEscape.includes(`'`)) { |
| const quoteIsLast = toEscape.lastIndexOf(`"`) === toEscape.length - 1 |
| const substrings = toEscape.split(`"`) |
| |
| // Remove the last element if it's an empty string |
| if (substrings[substrings.length - 1] === '') { |
| substrings.pop() |
| } |
| |
| let result = 'concat(' |
| |
| for (let i = 0; i < substrings.length; i++) { |
| result += `"${substrings[i]}"` |
| result += i === substrings.length - 1 ? (quoteIsLast ? `, '"')` : `)`) : `, '"', ` |
| } |
| return result |
| } |
| |
| if (toEscape.includes('"')) { |
| return `'${toEscape}'` |
| } |
| |
| // Otherwise return the quoted string |
| return `"${toEscape}"` |
| } |
| |
| function getLongestSubstringWithoutSpace(text) { |
| let words = text.split(' ') |
| let longestString = '' |
| for (let word of words) { |
| if (word.length > longestString.length) { |
| longestString = word |
| } |
| } |
| return longestString |
| } |
| |
| module.exports = { Select, escapeQuotes } |
| </code></pre></article></section></div></div></div><div class="search-container" id="PkfLWpAbet" style="display:none"><div class="wrapper" id="iCxFxjkHbP"><button class="icon-button search-close-button" id="VjLlGakifb" aria-label="close search"><svg><use xlink:href="#close-icon"></use></svg></button><div class="search-box-c"><svg><use xlink:href="#search-icon"></use></svg> <input type="text" id="vpcKVYIppa" class="search-input" placeholder="Search..." autofocus></div><div class="search-result-c" id="fWwVHRuDuN"><span class="search-result-c-text">Type anything to view search result</span></div></div></div><div class="mobile-menu-icon-container"><button class="icon-button" id="mobile-menu" data-isopen="false" aria-label="menu"><svg><use xlink:href="#menu-icon"></use></svg></button></div><div id="mobile-sidebar" class="mobile-sidebar-container"><div class="mobile-sidebar-wrapper"><a href="/" class="sidebar-title sidebar-title-anchor">Selenium WebDriver JavaScript API</a><div class="mobile-nav-links"><div class="navbar-item"><a id="github-mobile" href="https://github.com/SeleniumHQ/selenium" target="">GitHub</a></div><div class="navbar-item"><a id="npm-mobile" href="https://www.npmjs.com/package/selenium-webdriver" target="">npm</a></div></div><div class="mobile-sidebar-items-c"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-modules"><div>Modules</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="module-selenium-webdriver_chrome.html">selenium-webdriver/chrome</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_chromium.html">selenium-webdriver/chromium</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_edge.html">selenium-webdriver/edge</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_firefox.html">selenium-webdriver/firefox</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_ie.html">selenium-webdriver/ie</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_safari.html">selenium-webdriver/safari</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Actions.html">Actions</a></div><div class="sidebar-section-children"><a href="Alert.html">Alert</a></div><div class="sidebar-section-children"><a href="AlertPromise.html">AlertPromise</a></div><div class="sidebar-section-children"><a href="ArgumentValue.html">ArgumentValue</a></div><div class="sidebar-section-children"><a href="BaseLogEntry.html">BaseLogEntry</a></div><div class="sidebar-section-children"><a href="BaseParameters.html">BaseParameters</a></div><div class="sidebar-section-children"><a href="BeforeRequestSent.html">BeforeRequestSent</a></div><div class="sidebar-section-children"><a href="BoxClipRectangle.html">BoxClipRectangle</a></div><div class="sidebar-section-children"><a href="global.html#Browser">Browser</a></div><div class="sidebar-section-children"><a href="BrowsingContext.html">BrowsingContext</a></div><div class="sidebar-section-children"><a href="BrowsingContextInfo.html">BrowsingContextInfo</a></div><div class="sidebar-section-children"><a href="BrowsingContextInspector.html">BrowsingContextInspector</a></div><div class="sidebar-section-children"><a href="BrowsingContextPartitionDescriptor.html">BrowsingContextPartitionDescriptor</a></div><div class="sidebar-section-children"><a href="Build.html">Build</a></div><div class="sidebar-section-children"><a href="Builder.html">Builder</a></div><div class="sidebar-section-children"><a href="By.html">By</a></div><div class="sidebar-section-children"><a href="BytesValue.html">BytesValue</a></div><div class="sidebar-section-children"><a href="Capabilities.html">Capabilities</a></div><div class="sidebar-section-children"><a href="CaptureScreenshotParameters.html">CaptureScreenshotParameters</a></div><div class="sidebar-section-children"><a href="ChannelValue.html">ChannelValue</a></div><div class="sidebar-section-children"><a href="ClientWindowInfo.html">ClientWindowInfo</a></div><div class="sidebar-section-children"><a href="ClipRectangle.html">ClipRectangle</a></div><div class="sidebar-section-children"><a href="Command.html">Command</a></div><div class="sidebar-section-children"><a href="Command.html">Command</a></div><div class="sidebar-section-children"><a href="Condition.html">Condition</a></div><div class="sidebar-section-children"><a href="ConsoleLogEntry.html">ConsoleLogEntry</a></div><div class="sidebar-section-children"><a href="ContinueRequestParameters.html">ContinueRequestParameters</a></div><div class="sidebar-section-children"><a href="ContinueResponseParameters.html">ContinueResponseParameters</a></div><div class="sidebar-section-children"><a href="Cookie.html">Cookie</a></div><div class="sidebar-section-children"><a href="CookieFilter.html">CookieFilter</a></div><div class="sidebar-section-children"><a href="CreateContextParameters.html">CreateContextParameters</a></div><div class="sidebar-section-children"><a href="Credential.html">Credential</a></div><div class="sidebar-section-children"><a href="DetachedShadowRootError.html">DetachedShadowRootError</a></div><div class="sidebar-section-children"><a href="Device.html">Device</a></div><div class="sidebar-section-children"><a href="DriverService.html">DriverService</a></div><div class="sidebar-section-children"><a href="DriverService.Builder.html">Builder</a></div><div class="sidebar-section-children"><a href="ElementClickInterceptedError.html">ElementClickInterceptedError</a></div><div class="sidebar-section-children"><a href="ElementClipRectangle.html">ElementClipRectangle</a></div><div class="sidebar-section-children"><a href="ElementNotInteractableError.html">ElementNotInteractableError</a></div><div class="sidebar-section-children"><a href="ElementNotSelectableError.html">ElementNotSelectableError</a></div><div class="sidebar-section-children"><a href="Entry.html">Entry</a></div><div class="sidebar-section-children"><a href="Environment.html">Environment</a></div><div class="sidebar-section-children"><a href="EvaluateResultException.html">EvaluateResultException</a></div><div class="sidebar-section-children"><a href="EvaluateResultSuccess.html">EvaluateResultSuccess</a></div><div class="sidebar-section-children"><a href="ExceptionDetails.html">ExceptionDetails</a></div><div class="sidebar-section-children"><a href="Executor.html">Executor</a></div><div class="sidebar-section-children"><a href="FetchError.html">FetchError</a></div><div class="sidebar-section-children"><a href="FetchTimingInfo.html">FetchTimingInfo</a></div><div class="sidebar-section-children"><a href="FileDetector.html">FileDetector</a></div><div class="sidebar-section-children"><a href="FileDetector.html">FileDetector</a></div><div class="sidebar-section-children"><a href="GenericLogEntry.html">GenericLogEntry</a></div><div class="sidebar-section-children"><a href="Header.html">Header</a></div><div class="sidebar-section-children"><a href="HttpClient.html">HttpClient</a></div><div class="sidebar-section-children"><a href="HttpResponse.html">HttpResponse</a></div><div class="sidebar-section-children"><a href="Index_.html">Index</a></div><div class="sidebar-section-children"><a href="Initiator.html">Initiator</a></div><div class="sidebar-section-children"><a href="Input.html">Input</a></div><div class="sidebar-section-children"><a href="InsecureCertificateError.html">InsecureCertificateError</a></div><div class="sidebar-section-children"><a href="InvalidArgumentError.html">InvalidArgumentError</a></div><div class="sidebar-section-children"><a href="InvalidCharacterError.html">InvalidCharacterError</a></div><div class="sidebar-section-children"><a href="InvalidCookieDomainError.html">InvalidCookieDomainError</a></div><div class="sidebar-section-children"><a href="InvalidCoordinatesError.html">InvalidCoordinatesError</a></div><div class="sidebar-section-children"><a href="InvalidElementStateError.html">InvalidElementStateError</a></div><div class="sidebar-section-children"><a href="InvalidSelectorError.html">InvalidSelectorError</a></div><div class="sidebar-section-children"><a href="JavascriptError.html">JavascriptError</a></div><div class="sidebar-section-children"><a href="JavascriptLogEntry.html">JavascriptLogEntry</a></div><div class="sidebar-section-children"><a href="Keyboard.html">Keyboard</a></div><div class="sidebar-section-children"><a href="Level.html">Level</a></div><div class="sidebar-section-children"><a href="LocalValue.html">LocalValue</a></div><div class="sidebar-section-children"><a href="Locator.html">Locator</a></div><div class="sidebar-section-children"><a href="LogManager.html">LogManager</a></div><div class="sidebar-section-children"><a href="Logger.html">Logger</a></div><div class="sidebar-section-children"><a href="Message.html">Message</a></div><div class="sidebar-section-children"><a href="MoveTargetOutOfBoundsError.html">MoveTargetOutOfBoundsError</a></div><div class="sidebar-section-children"><a href="NavigateResult.html">NavigateResult</a></div><div class="sidebar-section-children"><a href="NavigationInfo.html">NavigationInfo</a></div><div class="sidebar-section-children"><a href="Network.html">Network</a></div><div class="sidebar-section-children"><a href="NetworkInspector.html">NetworkInspector</a></div><div class="sidebar-section-children"><a href="NoSuchAlertError.html">NoSuchAlertError</a></div><div class="sidebar-section-children"><a href="NoSuchCookieError.html">NoSuchCookieError</a></div><div class="sidebar-section-children"><a href="NoSuchElementError.html">NoSuchElementError</a></div><div class="sidebar-section-children"><a href="NoSuchFrameError.html">NoSuchFrameError</a></div><div class="sidebar-section-children"><a href="NoSuchSessionError.html">NoSuchSessionError</a></div><div class="sidebar-section-children"><a href="NoSuchShadowRootError.html">NoSuchShadowRootError</a></div><div class="sidebar-section-children"><a href="NoSuchWindowError.html">NoSuchWindowError</a></div><div class="sidebar-section-children"><a href="PartialCookie.html">PartialCookie</a></div><div class="sidebar-section-children"><a href="PartitionDescriptor.html">PartitionDescriptor</a></div><div class="sidebar-section-children"><a href="PartitionKey.html">PartitionKey</a></div><div class="sidebar-section-children"><a href="Pointer.html">Pointer</a></div><div class="sidebar-section-children"><a href="Preferences.html">Preferences</a></div><div class="sidebar-section-children"><a href="PrintResult.html">PrintResult</a></div><div class="sidebar-section-children"><a href="ProvideResponseParameters.html">ProvideResponseParameters</a></div><div class="sidebar-section-children"><a href="RealmInfo.html">RealmInfo</a></div><div class="sidebar-section-children"><a href="ReferenceValue.html">ReferenceValue</a></div><div class="sidebar-section-children"><a href="RegExpValue.html">RegExpValue</a></div><div class="sidebar-section-children"><a href="RelativeBy.html">RelativeBy</a></div><div class="sidebar-section-children"><a href="RemoteValue.html">RemoteValue</a></div><div class="sidebar-section-children"><a href="Request.html">Request</a></div><div class="sidebar-section-children"><a href="RequestData.html">RequestData</a></div><div class="sidebar-section-children"><a href="Response.html">Response</a></div><div class="sidebar-section-children"><a href="ResponseData.html">ResponseData</a></div><div class="sidebar-section-children"><a href="ResponseStarted.html">ResponseStarted</a></div><div class="sidebar-section-children"><a href="Result.html">Result</a></div><div class="sidebar-section-children"><a href="ScriptManager.html">ScriptManager</a></div><div class="sidebar-section-children"><a href="ScriptTimeoutError.html">ScriptTimeoutError</a></div><div class="sidebar-section-children"><a href="Select.html">Select</a></div><div class="sidebar-section-children"><a href="SeleniumServer.html">SeleniumServer</a></div><div class="sidebar-section-children"><a href="SerializationOptions.html">SerializationOptions</a></div><div class="sidebar-section-children"><a href="Server.html">Server</a></div><div class="sidebar-section-children"><a href="Session.html">Session</a></div><div class="sidebar-section-children"><a href="SessionNotCreatedError.html">SessionNotCreatedError</a></div><div class="sidebar-section-children"><a href="ShadowRoot.html">ShadowRoot</a></div><div class="sidebar-section-children"><a href="ShadowRootPromise.html">ShadowRootPromise</a></div><div class="sidebar-section-children"><a href="Source.html">Source</a></div><div class="sidebar-section-children"><a href="StaleElementReferenceError.html">StaleElementReferenceError</a></div><div class="sidebar-section-children"><a href="Storage.html">Storage</a></div><div class="sidebar-section-children"><a href="StorageKeyPartitionDescriptor.html">StorageKeyPartitionDescriptor</a></div><div class="sidebar-section-children"><a href="TimeoutError.html">TimeoutError</a></div><div class="sidebar-section-children"><a href="UnableToCaptureScreenError.html">UnableToCaptureScreenError</a></div><div class="sidebar-section-children"><a href="UnableToSetCookieError.html">UnableToSetCookieError</a></div><div class="sidebar-section-children"><a href="UnexpectedAlertOpenError.html">UnexpectedAlertOpenError</a></div><div class="sidebar-section-children"><a href="UnknownCommandError.html">UnknownCommandError</a></div><div class="sidebar-section-children"><a href="UnknownMethodError.html">UnknownMethodError</a></div><div class="sidebar-section-children"><a href="UnsupportedOperationError.html">UnsupportedOperationError</a></div><div class="sidebar-section-children"><a href="UrlPattern.html">UrlPattern</a></div><div class="sidebar-section-children"><a href="VirtualAuthenticatorOptions.html">VirtualAuthenticatorOptions</a></div><div class="sidebar-section-children"><a href="WebDriver.html">WebDriver</a></div><div class="sidebar-section-children"><a href="WebDriverError.html">WebDriverError</a></div><div class="sidebar-section-children"><a href="WebElement.html">WebElement</a></div><div class="sidebar-section-children"><a href="WebElementCondition.html">WebElementCondition</a></div><div class="sidebar-section-children"><a href="WebElementPromise.html">WebElementPromise</a></div><div class="sidebar-section-children"><a href="Wheel.html">Wheel</a></div><div class="sidebar-section-children"><a href="WindowRealmInfo.html">WindowRealmInfo</a></div><div class="sidebar-section-children"><a href="Zip.html">Zip</a></div><div class="sidebar-section-children"><a href="createDriver-thenableWebDriverProxy.html">thenableWebDriverProxy</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_chrome-Driver.html">Driver</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_chrome-Options.html">Options</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_chrome-ServiceBuilder.html">ServiceBuilder</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_chromium-Driver.html">Driver</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_chromium-Extensions.html">Extensions</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_chromium-Options.html">Options</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_chromium-ServiceBuilder.html">ServiceBuilder</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_edge-Driver.html">Driver</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_edge-Options.html">Options</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_edge-ServiceBuilder.html">ServiceBuilder</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_firefox-AddonFormatError.html">AddonFormatError</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_firefox-Channel.html">Channel</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_firefox-Driver.html">Driver</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_firefox-Options.html">Options</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_firefox-ServiceBuilder.html">ServiceBuilder</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_ie-Driver.html">Driver</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_ie-Options.html">Options</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_ie-ServiceBuilder.html">ServiceBuilder</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_safari-Driver.html">Driver</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_safari-Options.html">Options</a></div><div class="sidebar-section-children"><a href="module-selenium-webdriver_safari-ServiceBuilder.html">ServiceBuilder</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-interfaces"><div>Interfaces</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="Action.html">Action</a></div><div class="sidebar-section-children"><a href="Client.html">Client</a></div><div class="sidebar-section-children"><a href="global.html#Config">Config</a></div><div class="sidebar-section-children"><a href="Executor.html">Executor</a></div><div class="sidebar-section-children"><a href="ISelect.html">ISelect</a></div><div class="sidebar-section-children"><a href="IWebDriver.html">IWebDriver</a></div><div class="sidebar-section-children"><a href="global.html#ManualConfig">ManualConfig</a></div><div class="sidebar-section-children"><a href="Options.html">Options</a></div><div class="sidebar-section-children"><a href="Options.Cookie.html">Cookie</a></div><div class="sidebar-section-children"><a href="global.html#PacConfig">PacConfig</a></div><div class="sidebar-section-children"><a href="SeleniumServer.Options.html">Options</a></div><div class="sidebar-section-children"><a href="ServiceOptions.html">ServiceOptions</a></div><div class="sidebar-section-children"><a href="SuiteOptions.html">SuiteOptions</a></div><div class="sidebar-section-children"><a href="TargetBrowser.html">TargetBrowser</a></div><div class="sidebar-section-children"><a href="ThenableWebDriver.html">ThenableWebDriver</a></div><div class="sidebar-section-children"><a href="Timeouts.html">Timeouts</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#Atom">Atom</a></div><div class="sidebar-section-children"><a href="global.html#Browser">Browser</a></div><div class="sidebar-section-children"><a href="global.html#Button">Button</a></div><div class="sidebar-section-children"><a href="global.html#ByHash">ByHash</a></div><div class="sidebar-section-children"><a href="global.html#Capability">Capability</a></div><div class="sidebar-section-children"><a href="global.html#CommandLineFlag">CommandLineFlag</a></div><div class="sidebar-section-children"><a href="global.html#CommandSpec">CommandSpec</a></div><div class="sidebar-section-children"><a href="global.html#CommandTransformer">CommandTransformer</a></div><div class="sidebar-section-children"><a href="global.html#Config">Config</a></div><div class="sidebar-section-children"><a href="global.html#ErrorCode">ErrorCode</a></div><div class="sidebar-section-children"><a href="global.html#EvaluateResultType">EvaluateResultType</a></div><div class="sidebar-section-children"><a href="global.html#INTERNAL_COMPUTE_OFFSET_SCRIPT">INTERNAL_COMPUTE_OFFSET_SCRIPT</a></div><div class="sidebar-section-children"><a href="global.html#InterceptPhase">InterceptPhase</a></div><div class="sidebar-section-children"><a href="global.html#Key">Key</a></div><div class="sidebar-section-children"><a href="global.html#ManualConfig">ManualConfig</a></div><div class="sidebar-section-children"><a href="global.html#Name">Name</a></div><div class="sidebar-section-children"><a href="global.html#NonPrimitiveType">NonPrimitiveType</a></div><div class="sidebar-section-children"><a href="global.html#Origin">Origin</a></div><div class="sidebar-section-children"><a href="global.html#Origin">Origin</a></div><div class="sidebar-section-children"><a href="global.html#PacConfig">PacConfig</a></div><div class="sidebar-section-children"><a href="global.html#PageLoadStrategy">PageLoadStrategy</a></div><div class="sidebar-section-children"><a href="global.html#Platform">Platform</a></div><div class="sidebar-section-children"><a href="global.html#PrimitiveType">PrimitiveType</a></div><div class="sidebar-section-children"><a href="global.html#Protocol">Protocol</a></div><div class="sidebar-section-children"><a href="global.html#RealmType">RealmType</a></div><div class="sidebar-section-children"><a href="global.html#RemoteReferenceType">RemoteReferenceType</a></div><div class="sidebar-section-children"><a href="global.html#RemoteType">RemoteType</a></div><div class="sidebar-section-children"><a href="global.html#RequestOptions">RequestOptions</a></div><div class="sidebar-section-children"><a href="global.html#ResultOwnership">ResultOwnership</a></div><div class="sidebar-section-children"><a href="global.html#SameSite">SameSite</a></div><div class="sidebar-section-children"><a href="global.html#SpecialNumberType">SpecialNumberType</a></div><div class="sidebar-section-children"><a href="global.html#StdIoOptions">StdIoOptions</a></div><div class="sidebar-section-children"><a href="global.html#THENABLE_DRIVERS">THENABLE_DRIVERS</a></div><div class="sidebar-section-children"><a href="global.html#Transport">Transport</a></div><div class="sidebar-section-children"><a href="global.html#Type">Type</a></div><div class="sidebar-section-children"><a href="global.html#Type">Type</a></div><div class="sidebar-section-children"><a href="global.html#Type">Type</a></div><div class="sidebar-section-children"><a href="global.html#Type">Type</a></div><div class="sidebar-section-children"><a href="global.html#USER_AGENT">USER_AGENT</a></div><div class="sidebar-section-children"><a href="global.html#UserPromptHandler">UserPromptHandler</a></div><div class="sidebar-section-children"><a href="global.html#W3C_COMMAND_MAP">W3C_COMMAND_MAP</a></div><div class="sidebar-section-children"><a href="global.html#ableToSwitchToFrame">ableToSwitchToFrame</a></div><div class="sidebar-section-children"><a href="global.html#addConsoleHandler">addConsoleHandler</a></div><div class="sidebar-section-children"><a href="global.html#alertIsPresent">alertIsPresent</a></div><div class="sidebar-section-children"><a href="global.html#arraysEqual">arraysEqual</a></div><div class="sidebar-section-children"><a href="global.html#binaryPaths">binaryPaths</a></div><div class="sidebar-section-children"><a href="global.html#buildPath">buildPath</a></div><div class="sidebar-section-children"><a href="global.html#buildRequest">buildRequest</a></div><div class="sidebar-section-children"><a href="global.html#builtTargets">builtTargets</a></div><div class="sidebar-section-children"><a href="global.html#check">check</a></div><div class="sidebar-section-children"><a href="global.html#checkCodePoint">checkCodePoint</a></div><div class="sidebar-section-children"><a href="global.html#checkLegacyResponse">checkLegacyResponse</a></div><div class="sidebar-section-children"><a href="global.html#checkOptions">checkOptions</a></div><div class="sidebar-section-children"><a href="global.html#checkedCall">checkedCall</a></div><div class="sidebar-section-children"><a href="global.html#checkedNodeCall">checkedNodeCall</a></div><div class="sidebar-section-children"><a href="global.html#color">color</a></div><div class="sidebar-section-children"><a href="global.html#consoleHandler">consoleHandler</a></div><div class="sidebar-section-children"><a href="global.html#copy">copy</a></div><div class="sidebar-section-children"><a href="global.html#copyDir">copyDir</a></div><div class="sidebar-section-children"><a href="global.html#createDriver">createDriver</a></div><div class="sidebar-section-children"><a href="global.html#delayed">delayed</a></div><div class="sidebar-section-children"><a href="global.html#direct">direct</a></div><div class="sidebar-section-children"><a href="global.html#elementIsDisabled">elementIsDisabled</a></div><div class="sidebar-section-children"><a href="global.html#elementIsEnabled">elementIsEnabled</a></div><div class="sidebar-section-children"><a href="global.html#elementIsNotSelected">elementIsNotSelected</a></div><div class="sidebar-section-children"><a href="global.html#elementIsNotVisible">elementIsNotVisible</a></div><div class="sidebar-section-children"><a href="global.html#elementIsSelected">elementIsSelected</a></div><div class="sidebar-section-children"><a href="global.html#elementIsVisible">elementIsVisible</a></div><div class="sidebar-section-children"><a href="global.html#elementLocated">elementLocated</a></div><div class="sidebar-section-children"><a href="global.html#elementTextContains">elementTextContains</a></div><div class="sidebar-section-children"><a href="global.html#elementTextIs">elementTextIs</a></div><div class="sidebar-section-children"><a href="global.html#elementTextMatches">elementTextMatches</a></div><div class="sidebar-section-children"><a href="global.html#elementsLocated">elementsLocated</a></div><div class="sidebar-section-children"><a href="global.html#encodeError">encodeError</a></div><div class="sidebar-section-children"><a href="global.html#ensureFileDetectorsAreEnabled">ensureFileDetectorsAreEnabled</a></div><div class="sidebar-section-children"><a href="global.html#escapeCss">escapeCss</a></div><div class="sidebar-section-children"><a href="global.html#exec">exec</a></div><div class="sidebar-section-children"><a href="global.html#executeCommand">executeCommand</a></div><div class="sidebar-section-children"><a href="global.html#exists">exists</a></div><div class="sidebar-section-children"><a href="global.html#extractId">extractId</a></div><div class="sidebar-section-children"><a href="global.html#filter">filter</a></div><div class="sidebar-section-children"><a href="global.html#filterNonW3CCaps">filterNonW3CCaps</a></div><div class="sidebar-section-children"><a href="global.html#findFreePort">findFreePort</a></div><div class="sidebar-section-children"><a href="global.html#findInPath">findInPath</a></div><div class="sidebar-section-children"><a href="global.html#formatSpawnArgs">formatSpawnArgs</a></div><div class="sidebar-section-children"><a href="global.html#fromWireValue">fromWireValue</a></div><div class="sidebar-section-children"><a href="global.html#fullyResolveKeys">fullyResolveKeys</a></div><div class="sidebar-section-children"><a href="global.html#fullyResolved">fullyResolved</a></div><div class="sidebar-section-children"><a href="global.html#getAddress">getAddress</a></div><div class="sidebar-section-children"><a href="global.html#getAvailableBrowsers">getAvailableBrowsers</a></div><div class="sidebar-section-children"><a href="global.html#getBinary">getBinary</a></div><div class="sidebar-section-children"><a href="global.html#getBinaryPaths">getBinaryPaths</a></div><div class="sidebar-section-children"><a href="global.html#getBrowsersToTestFromEnv">getBrowsersToTestFromEnv</a></div><div class="sidebar-section-children"><a href="global.html#getBrowsingContextInstance">getBrowsingContextInstance</a></div><div class="sidebar-section-children"><a href="global.html#getHostName">getHostName</a></div><div class="sidebar-section-children"><a href="global.html#getIPAddress">getIPAddress</a></div><div class="sidebar-section-children"><a href="global.html#getJavaPath">getJavaPath</a></div><div class="sidebar-section-children"><a href="global.html#getLevel">getLevel</a></div><div class="sidebar-section-children"><a href="global.html#getLogInspectorInstance">getLogInspectorInstance</a></div><div class="sidebar-section-children"><a href="global.html#getLogger">getLogger</a></div><div class="sidebar-section-children"><a href="global.html#getLoopbackAddress">getLoopbackAddress</a></div><div class="sidebar-section-children"><a href="global.html#getRequestOptions">getRequestOptions</a></div><div class="sidebar-section-children"><a href="global.html#getStatus">getStatus</a></div><div class="sidebar-section-children"><a href="global.html#getTestHook">getTestHook</a></div><div class="sidebar-section-children"><a href="global.html#headersToString">headersToString</a></div><div class="sidebar-section-children"><a href="global.html#ignore">ignore</a></div><div class="sidebar-section-children"><a href="global.html#init">init</a></div><div class="sidebar-section-children"><a href="global.html#installConsoleHandler">installConsoleHandler</a></div><div class="sidebar-section-children"><a href="global.html#isErrorResponse">isErrorResponse</a></div><div class="sidebar-section-children"><a href="global.html#isFree">isFree</a></div><div class="sidebar-section-children"><a href="global.html#isId">isId</a></div><div class="sidebar-section-children"><a href="global.html#isIdle">isIdle</a></div><div class="sidebar-section-children"><a href="global.html#isObject">isObject</a></div><div class="sidebar-section-children"><a href="global.html#isPromise">isPromise</a></div><div class="sidebar-section-children"><a href="global.html#isRetryableNetworkError">isRetryableNetworkError</a></div><div class="sidebar-section-children"><a href="global.html#isSelenium3x">isSelenium3x</a></div><div class="sidebar-section-children"><a href="global.html#legacyTimeout">legacyTimeout</a></div><div class="sidebar-section-children"><a href="global.html#load">load</a></div><div class="sidebar-section-children"><a href="global.html#locate">locate</a></div><div class="sidebar-section-children"><a href="global.html#locateWith">locateWith</a></div><div class="sidebar-section-children"><a href="global.html#manual">manual</a></div><div class="sidebar-section-children"><a href="global.html#map">map</a></div><div class="sidebar-section-children"><a href="global.html#mkdir">mkdir</a></div><div class="sidebar-section-children"><a href="global.html#mkdirp">mkdirp</a></div><div class="sidebar-section-children"><a href="global.html#of">of</a></div><div class="sidebar-section-children"><a href="global.html#pac">pac</a></div><div class="sidebar-section-children"><a href="global.html#pad">pad</a></div><div class="sidebar-section-children"><a href="global.html#parseHttpResponse">parseHttpResponse</a></div><div class="sidebar-section-children"><a href="global.html#path">path</a></div><div class="sidebar-section-children"><a href="global.html#projectRoot">projectRoot</a></div><div class="sidebar-section-children"><a href="global.html#read">read</a></div><div class="sidebar-section-children"><a href="global.html#removeConsoleHandler">removeConsoleHandler</a></div><div class="sidebar-section-children"><a href="global.html#requireAtom">requireAtom</a></div><div class="sidebar-section-children"><a href="global.html#resolveCommandLineFlags">resolveCommandLineFlags</a></div><div class="sidebar-section-children"><a href="global.html#resolveWaitMessage">resolveWaitMessage</a></div><div class="sidebar-section-children"><a href="global.html#rmDir">rmDir</a></div><div class="sidebar-section-children"><a href="global.html#sendIndex">sendIndex</a></div><div class="sidebar-section-children"><a href="global.html#sendRequest">sendRequest</a></div><div class="sidebar-section-children"><a href="global.html#serialize">serialize</a></div><div class="sidebar-section-children"><a href="global.html#setFileDetector">setFileDetector</a></div><div class="sidebar-section-children"><a href="global.html#shouldRetryRequest">shouldRetryRequest</a></div><div class="sidebar-section-children"><a href="global.html#socks">socks</a></div><div class="sidebar-section-children"><a href="global.html#splitHostAndPort">splitHostAndPort</a></div><div class="sidebar-section-children"><a href="global.html#stalenessOf">stalenessOf</a></div><div class="sidebar-section-children"><a href="global.html#start">start</a></div><div class="sidebar-section-children"><a href="global.html#startSeleniumServer">startSeleniumServer</a></div><div class="sidebar-section-children"><a href="global.html#stat">stat</a></div><div class="sidebar-section-children"><a href="global.html#stop">stop</a></div><div class="sidebar-section-children"><a href="global.html#suite">suite</a></div><div class="sidebar-section-children"><a href="global.html#suite">suite</a></div><div class="sidebar-section-children"><a href="global.html#system">system</a></div><div class="sidebar-section-children"><a href="global.html#thenFinally">thenFinally</a></div><div class="sidebar-section-children"><a href="global.html#throwDecodedError">throwDecodedError</a></div><div class="sidebar-section-children"><a href="global.html#titleContains">titleContains</a></div><div class="sidebar-section-children"><a href="global.html#titleIs">titleIs</a></div><div class="sidebar-section-children"><a href="global.html#titleMatches">titleMatches</a></div><div class="sidebar-section-children"><a href="global.html#tmpDir">tmpDir</a></div><div class="sidebar-section-children"><a href="global.html#tmpFile">tmpFile</a></div><div class="sidebar-section-children"><a href="global.html#toExecuteAtomCommand">toExecuteAtomCommand</a></div><div class="sidebar-section-children"><a href="global.html#toMap">toMap</a></div><div class="sidebar-section-children"><a href="global.html#toWireValue">toWireValue</a></div><div class="sidebar-section-children"><a href="global.html#tryParse">tryParse</a></div><div class="sidebar-section-children"><a href="global.html#unlink">unlink</a></div><div class="sidebar-section-children"><a href="global.html#unzip">unzip</a></div><div class="sidebar-section-children"><a href="global.html#url">url</a></div><div class="sidebar-section-children"><a href="global.html#urlContains">urlContains</a></div><div class="sidebar-section-children"><a href="global.html#urlIs">urlIs</a></div><div class="sidebar-section-children"><a href="global.html#urlMatches">urlMatches</a></div><div class="sidebar-section-children"><a href="global.html#waitForServer">waitForServer</a></div><div class="sidebar-section-children"><a href="global.html#waitForUrl">waitForUrl</a></div><div class="sidebar-section-children"><a href="global.html#walkDir">walkDir</a></div><div class="sidebar-section-children"><a href="global.html#whereIs">whereIs</a></div><div class="sidebar-section-children"><a href="global.html#withTagName">withTagName</a></div><div class="sidebar-section-children"><a href="global.html#write">write</a></div></div></div><div class="mobile-navbar-actions"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div></div></div><script type="text/javascript" src="scripts/core.min.js"></script><script src="scripts/search.min.js" defer="defer"></script><script src="scripts/third-party/fuse.js" defer="defer"></script><script type="text/javascript">var tocbotInstance=tocbot.init({tocSelector:"#eed4d2a0bfd64539bb9df78095dec881",contentSelector:".main-content",headingSelector:"h1, h2, h3",hasInnerContainers:!0,scrollContainer:".main-content",headingsOffset:130,onClick:bringLinkToView})</script></body></html> |