该文档为 js 版本
更新时间:2021.2.27
进度: WebElement部分完成
文档地址:selenium
code:code
gitee地址:gitee
Browser 浏览器
支持的浏览器 |
---|
CHROME |
EDGE |
FIREFOX |
IE |
INTERNET_EXPLORER |
SAFARI |
Builder 类生成器
var driver = new webdriver.Builder()
.forBrowser('chrome')
.build();
实例方法
this.build()
基于该构建器的当前配置创建一个新的WebDriver客户端。
该方法将返回一个ThenableWebDriver实例,允许用户直接发布命令而无需调用then()。返回的 thenable 包裹了一个 promise ,该 promise 将解析为一个具体的 WebDriver 实例。如果远程端未能创建一个新的会话,该 promise 将被拒绝。
参数: 无
Return返回值: 一个新的WebDriver实例
Throws: If the current configuration is invalid ( Error|null )
this.disableEnvironmentOverrides()
配置此生成器忽略任何环境变量覆盖,只使用通过此实例的API指定的配置。
参数: 无
Return返回值: Builder 一个新的WebDriver实例
this.forBrowser( name, opt_version, opt_platform )
为本实例创建的客户端配置目标浏览器。在此函数之后对 #withCapabilities
的任何调用都将覆盖这些设置。
你也可以使用 SELENIUM_BROWSER
环境变量定义目标浏览器。如果设置了,这个环境变量的形式应该是
browser[:[ 版本 ][ :平台 ]]。
参数:
参数 | 内容 |
---|---|
name | (string|Browser) 目标浏览器的名称;通用默认值在webdriver.Browser 枚举中可用 |
opt_version | (string|undefined) 所需的版本;可省略,省略则可以使用任何版本 |
opt_platform | (string|undefined) 所需的平台;可省略,省略则可以使用任何平台 |
Return返回值: Builder
this.getCapabilities()
返回此实例当前配置使用的基本功能集。
参数: 无
Return返回值: Capabilities 该构建器的当前功能
this.getChromeOptions()
参数: 无
Return返回值: ( Options|null) 当前为此构建器 ( builder ) 配置的Chrome特定选项
this.getFirefoxOptions()
参数: 无
Return返回值: ( Options|null) 当前为此实例 ( instance ) 配置的Firefox特定选项
this.getHttpAgent()
参数: 无
Return返回值: (http.Agent|null) 每个请求使用的http代理
this.getSafariOptions()
参数: 无
Return返回值: ( Options|null) 当前为此实例 ( instance ) 配置的Safari特定选项
this.getServerUrl()
参数: 无
Return返回值: string 该实例配置为使用的WebDriver服务器的URL
this.getWebDriverProxy()
参数: 无
Return返回值: (string|null) 用于WebDriver的HTTP连接的代理服务器的URL,如果没有设置,则为空。
this.setAlertBehavior( behavior )
设置在返回错误之前对意外警报采取的默认操作。
参数: ( UserPromptHandler|null) 所需的行为
Return返回值: Builder
this.setChromeOptions( options )
为该生成器创建的驱动程序设置 Chrome 浏览器的特定选项。在给定选项上定义的任何日志或代理设置将优先于分别通过 #setLoggingPrefs 和 #setProxy 进行的设置。
参数: Options 要使用的ChromeDriver选项
Return返回值: Builder
this.setChromeService( service )
设置在创建新的Chrome会话时,用于管理chromedriver子进程的服务构建器
参数: ( ServiceBuilder|null) 使用的服务
Return返回值: Builder
this.setEdgeOptions( options )
参数: Options 要使用的MicrosoftEdgeDriver选项
Return返回值: Builder
this.setEdgeService( service )
设置edge.ServiceBuilder在本地创建会话时用于管理MicrosoftEdgeDriver子进程
参数: ( ServiceBuilder|null) 使用的服务
Return返回值: Builder
this.setFirefoxOptions( options )
为该生成器创建的驱动程序设置Firefox特定选项。任何定义在给定选项上的日志或代理设置将优先于分别通过#setLoggingPrefs和#setProxy进行的设置。
参数: Options 要使用的FirefoxDriver选项
Return返回值: Builder
this.setFirefoxService( service )
设置firefox.ServiceBuilder在本地创建Firefox会话时用来管理geckodriver子进程。
参数: ( ServiceBuilder|null) 使用的服务
Return返回值: Builder
this.setIeOptions( options )
为该生成器创建的驱动程序设置Internet Explorer特定选项。在给定选项上定义的任何代理设置将优先于通过#setProxy设置的设置。
参数: Options 要使用的IEDriver选项
Return返回值: Builder
this.setLoggingPrefs( prefs )
为创建的会话设置日志记录的首选项,可以通过重复调用或调用#withCapabilities来改变首选项。
参数: (Preferences|Object<string, string>) 所需的日志记录首选项
Return返回值: Builder
this.setProxy( config )
设置目标浏览器的代理配置。在此函数之后对#withCapabilities的任何调用都将覆盖这些设置。
参数: Config 要使用的配置
Return返回值: Builder
this.setSafariOptions( options )
为该生成器创建的驱动程序设置Safari特定选项。在给定选项上定义的任何日志设置将优先于通过#setLoggingPrefs进行的设置。
参数: Options 要使用的Safari选项
Return返回值: Builder
this.usingHttpAgent( agent )
设置每个请求要使用的 http 代理。如果不调用此方法,生成器将默认使用 http.globalAgent。
参数: (http.Agent|null) 每个请求要使用的代理
Return返回值: Builder
this.usingServer( url )
设置要使用的远程WebDriver服务器的URL。一旦远程URL被指定,生成器就会将所有新的客户端引导到该服务器上。如果该方法从未被调用,那么Builder将尝试在本地创建所有客户端。
作为替代方法,你也可以设置SELENIUM_REMOTE_URL
环境变量。
参数: string 要使用的远程服务器的URL
Return返回值: Builder
this.usingWebDriverProxy( proxy )
设置代理的URL,用于WebDriver的HTTP连接。如果该方法从未被调用,那么Builder将创建一个没有代理的连接。
参数: string 要使用的代理的URL
Return返回值: Builder
this.withCapabilities( capabilities )
在请求新会话时设置所需的功能。这将覆盖任何先前设置的功能。
参数: (Object|Capabilities) 新会话所需的功能
Return返回值: Builder
Enumeration Button 枚举按钮
枚举高级交互API中使用的按钮。
值 |
---|
LEFT |
MIDDLE |
RIGHT |
Class By
描述在页面上定位元素的机制。
new By( using, value )
参数: string 要使用的位置策略的名称
Return返回值: string 要搜索的值
实例方法
this.toString()
参数: 无
Return返回值: string
实例属性
this.using
无信息(官网就是这么写的)
this.value
无信息(官网就是这么写的)
静态函数
By.className( name )
找到具有特定类名的元素。
参数: string 要搜索的Class名
Return返回值: By 新的定位器
By.css( selector )
使用CSS选择器定位元素。
参数: string 要使用的CSS选择器
Return返回值: By 新的定位器
By.id( id )
通过ID属性找到元素。该定位器使用CSS选择器 *[id="$ID"]
,不是 document.getElementById
参数: string 要搜索的id
Return返回值: By 新的定位器
By.js( script, …var_args )
通过一个JavaScript表达式来定位一个元素。这个表达式的结果必须是一个元素或元素列表。
参数:(string|Function) 要执行的脚本,传递给脚本的参数
Return返回值: function(WebDriver): Promise 一个新的基于JavaScript的定位器函数
By.linkText( text )
定位可见文字与给定字符串匹配的链接元素( matches the given string )。
参数: string 要搜索的链接文本
Return返回值: By 新的定位器
By.name( name )
找到name
属性具有给定值的元素
参数: string 要搜索的name属性
Return返回值: By 新的定位器
By.partialLinkText( text )
定位那些可见文本包含给定子串的链接元素( contains the given substring )。
参数: string 用于检查链接的可见文本的子字符串
Return返回值: By 新的定位器
By.tagName( name )
找到具有给定标签名称的元素。
不推荐使用,使用By.css(tagName)
代替
参数: string 要搜索的标签名称
Return返回值: By 新的定位器
By.xpath( xpath )
定位匹配XPath选择器的元素。当在webdriver.WebElement中使用XPath选择器时应该注意,因为WebDriver将尊重选择器中指定的上下文。例如,给定选择器//div
,无论该定位器是否与WebElement一起使用,WebDriver都将从文档根目录搜索。
参数: string 要使用的XPath选择器
Return返回值: By 新的定位器
Class WebDriver
所有已实现的接口:selenium-webdriver
所有已知的直接子类:
每个WebDriver实例都提供对浏览器会话的自动控制
new WebDriver( session, executor, onQuit )
参数:
- session:已知会话或将被解析为会话的promise
- Executor:向浏览器发送命令时要使用的执行程序
- onQuit: 会话终止时调用的函数(如果有)
实例方法
this.actions( options )
使用此驱动程序创建一个新的动作序列。该序列在 Actions.perform() 被调用之前不会提交执行
参数: ({async: (boolean|undefined), bridge: (boolean|undefined)}|undefined) 操作顺序的配置选项(Actions有关详细信息,请参阅文档)
Return返回值: Actions 此实例的新操作序列
this.close()
关闭当前窗口
参数: 无
Return返回值: Promise<undefined>
this.execute( command )
使用本驱动程序的command.Executor执行所提供的command.Command
参数: command 计划的命令
Return返回值: Promise<(T|null)>
this.executeAsyncScript( script, …args )
在当前选定的框架或窗口的上下文中执行一段异步JavaScript。脚本片段将作为一个匿名函数的主体来执行。如果脚本是作为函数对象提供的,那么该函数将被转换为字符串注入到目标窗口中。
除了脚本之外提供的任何参数都将作为脚本参数,并可以使用 arguments 对象来引用。参数可以是布尔值、数字、字符串或WebElement。数组和对象也可以作为脚本参数使用,只要每个项目符合前面提到的类型。
与使用#executeScript执行同步JavaScript不同的是,使用该函数执行的脚本必须通过调用提供的回调来明确表示它们已经完成。这个回调总是作为最后一个参数注入到执行的函数中,因此可以用arguments[arguments.length - 1]来引用。下面的步骤将被用来解析这个函数的返回值与脚本回调函数的第一个参数。
- 对于一个HTML元素,其值将解析为一个WebElement
- 空值和未定义的返回值将被解析为空
- 布尔式、数字和字符串将按原样解析
- 函数将解析为其字符串表示形式
- 对于数组和对象,每个成员项将按照上面的规则进行转换
案例1:执行与当前所选窗口同步的睡眠
var start = new Date().getTime();
driver.executeAsyncScript(
'window.setTimeout(arguments[arguments.length - 1], 500);').
then(function() {
console.log(
'Elapsed time: ' + (new Date().getTime() - start) + ' ms');
});
案例2:与AJAX应用程序同步测试
var button = driver.findElement(By.id('compose-button'));
button.click();
driver.executeAsyncScript(
'var callback = arguments[arguments.length - 1];' +
'mailClient.getComposeWindowWidget().onload(callback);');
driver.switchTo().frame('composeWidget');
driver.findElement(By.id('to')).sendKeys('dog@example.com');
案例3:注入一个XMLHttpRequest并等待结果。在这个例子中,注入脚本是用一个函数文字指定的。当使用这种格式时,函数会被转换为字符串进行注入,所以它不应该引用任何没有在被测页面范围内定义的符号
driver.executeAsyncScript(function() {
var callback = arguments[arguments.length - 1];
var xhr = new XMLHttpRequest();
xhr.open("GET", "/resource/data.json", true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
callback(xhr.responseText);
}
};
xhr.send('');
}).then(function(str) {
console.log(JSON.parse(str)['food']);
});
参数:
- script:(string|Function) 要执行的脚本
- args:传递给脚本的参数
Return返回值:Promise<(T|null)>
this.executeScript( script, …args )
在当前选定的框架或窗口的上下文中执行一个JavaScript片段。该脚本片段将作为匿名函数的主体执行。如果脚本是以函数对象的形式提供的,那么该函数将被转换为字符串注入到目标窗口中。
除了脚本之外提供的任何参数都将作为脚本参数,并可以使用 arguments 对象来引用。参数可以是布尔值、数字、字符串或WebElement。数组和对象也可以作为脚本参数使用,只要每个项目符合前面提到的类型。
脚本可以引用当前窗口中可以访问的任何变量。此外,脚本将在窗口的上下文中执行,因此document可以用来引用当前的文档。一旦脚本执行完毕,任何局部变量将不可用,但全局变量将持续存在。
如果脚本有一个返回值(即如果脚本包含一个返回语句),那么将采取以下步骤来解析这个函数的返回值。
- 对于一个HTML元素,该值将被解析为一个WebElement。
- 空值和未定义的返回值将被解析为空。
- 布尔式、数字和字符串将按原样解析。
- 函数将解析为其字符串表示形式
- 对于数组和对象,每个成员项将按照上面的规则进行转换。
参数:
- script:(string|Function) 要执行的脚本
- args:传递给脚本的参数
Return返回值: IThenable<(T|null)>
this.findElement( locator )
在页面上定位一个元素。如果找不到该元素,驱动程序将返回一个error.NoSuchEementError。
这个函数不应该被用来测试页面上是否有元素存在。相反,你应该使用#findElements:
driver.findElements(By.id('foo'))
.then(found => console.log('Element found? %s', !!found.length));
元素的搜索条件可以使用webdriver.By
命名空间中的一个 factories 来定义,或者作为一个简短的webdriver.By.Hash对象。例如,下面两个语句是等价的:
var e1 = driver.findElement(By.id('foo'));
var e2 = driver.findElement({id:'foo'});
您也可以提供一个自定义的定位器函数,该函数将这个实例作为输入,并返回一个WebElement,或者一个将解析到WebElement的promise。如果返回的promise解析到一个WebElements数组,WebDriver将使用第一个元素。例如,要找到页面上的第一个可见链接,你可以写道:
var link = driver.findElement(firstVisibleLink);
function firstVisibleLink(driver) {
var links = driver.findElements(By.tagName('a'));
return promise.filter(links, function(link) {
return link.isDisplayed();
});
}
参数:
- locator:(By|Function) 要使用的定位器
Return返回值: WebElementPromise 一个可用于对定位的元素发出命令的WebElement。如果没有找到该元素,该元素将无效,所有计划的命令将被取消
this.findElements( locator )
在页面上搜索多个元素。#findElement(by)有关元素定位器策略的信息,请参阅文档
参数:
- locator:(By|Function) 要使用的定位器
Return返回值: Promise<Array<WebElement>>
一个promise,将解析为一个WebElements数组
this.get( url )
导航到给定的URL
参数:
- url:string 要打开的标准URL
Return返回值:Promise<undefined>
this.getAllWindowHandles()
检索所有可用窗口句柄的列表
参数: 无
Return返回值: Promise<Array<WebElement>>
this.getCapabilities()
参数: 无
Return返回值: PromiseCapabilities
this.getCurrentUrl()
检索当前页面的URL
参数: 无
Return返回值: Promise<string>
this.getExecutor()
参数: 无
Return返回值:Executor 此实例使用的command executor
this.getPageSource()
检索当前页面的源。返回的souce是底层DOM的表示:不要指望它能像从Web服务器发送的原始响应一样被格式化或转义。
参数: 无
Return返回值:Promise<string>
this.getSession()
参数: 无
**Return返回值:**PromiseSession
this.getTitle()
检索当前页面标
参数: 无
Return返回值:Promise<string>
this.getWindowHandle()
检索当前的窗口句柄
参数: 无
Return返回值:Promise<string>
this.manage()
参数: 无
Return返回值: Options 此实例的options接口
this.navigate()
参数: 无
Return返回值: Navigation 此实例的导航接口
this.quit()
终止浏览器会话。调用quit之后,该实例将失效,并且可能不再用于对浏览器发出命令
参数: 无
Return返回值: Promise<undefined>
this.setFileDetector( detector )
设置此实例应使用的文件检测器
参数:
- detector: (FileDetector|null) 要用的检测器或者
null
this.sleep( ms )
使driver在给定的时间内休眠
参数:
- ms: number 睡眠时间(以毫秒为单位)
Return返回值: Promise<undefined>
this.switchTo()
参数: 无
Return返回值: TargetLocator 此实例的目标定位器接口
this.takeScreenshot()
对当前页面进行截屏。驱动程序会尽最大努力按照偏好顺序返回以下内容的截图
- 整个页面
- 当前窗口
- 当前帧的可见部分
- 包含浏览器的整个显示屏
参数: 无
Return返回值: Promise<string>
将以base-64编码的PNG形式解析为屏幕截图
this.wait( condition, timeout, message )
等待一个条件评估到一个 "truthy "值。条件可以由Condition指定,也可以由自定义函数指定,或者由任何类似于promise的thenable指定。
对于一个Condition或函数,wait会反复评估条件,直到返回一个truthy值。如果在评估条件时发生任何错误,它们将被允许传播。如果一个条件返回一个Promise,轮询循环将等待它被解析,并使用解析值来判断条件是否已被满足。承诺的解析时间总是被计入等待是否超时的因素。
如果提供的条件是一个WebElementCondition,那么等待将返回一个WebElementPromise,它将解析到满足条件的元素。
案例:等待一个元素出现在页面上的时间最长达10秒
async function example() {
let button =
await driver.wait(until.elementLocated(By.id('foo')), 10000);
await button.click();
}
参数:
- condition:等待的条件,定义为promise、条件对象或作为条件评估的函数。
- timeout:(number|undefined) 等待条件为真的时间
- message:(string|undefined) 如果等待时间过长,可选择使用的信息
Return返回值: 一个promise,将用条件函数返回的第一个真值来resolve,如果条件超时则拒绝。如果输入的输入条件是一个WebElementCondition的实例,返回的值将是一个WebElementPromise
静态功能
WebDriver.createSession( executor, capabilities, onQuit )
创建一个新的WebDriver会话。
该函数将始终返回一个WebDriver实例。如果在创建会话时出现了错误,比如前面提到的SessionNotCreatedError,那么驱动程序将有一个被拒绝的会话promise。这个拒绝将通过在返回的WebDriver实例上调度的任何后续命令传播。
let required = Capabilities.firefox();
let driver = WebDriver.createSession(executor, {required});
// If the createSession operation failed, then this command will also
// also fail, propagating the creation failure.
driver.get('http://www.google.com').catch(e => console.log(e));
参数:
- executor:Executor 用来创建新会话的Executor
- capabilities:新会话所需的功能
- onQuit:新创建的会话终止时要调用的回调。这应该用于清除与会话相关的任何资源。
Return返回值: WebDriver 新创建的会话的驱动程序
Class WebElement
表示DOM元素。可以通过使用WebDriver
实例从文档根目录进行搜索或在另一个WebElement下进行搜索来找到WebElement:
driver.get('http://www.google.com');
var searchForm = driver.findElement(By.tagName('form'));
var searchBox = searchForm.findElement(By.name('q'));
searchBox.sendKeys('webdriver');
new WebElement( driver, id )
参数:
- driver WebDriver 此元素的父WebDriver实例
- ID 服务器为基础DOM元素分配的不透明ID
实例方法
this.clear()
清除该元素的值。如果底层DOM元素既不是文本INPUT元素,也不是TEXTAREA元素,则该命令没有效果
参数: 无
返回值: Promise<undefined>
this.click()
单击此元素
参数: 无
返回值: Promise<undefined>
this.findElement( locator )
调度命令以查找此元素的后代。如果找不到该元素,则返回的Promise将被NoSuchElementError拒绝
元素的搜索条件可以使用by.By
类中的静态factories之一定义,也可以用作简写 ./by.ByHash
对象。例如,以下两个语句是等效的:
var e1 = element.findElement(By.id('foo'));
var e2 = element.findElement({id:'foo'});
您可能还提供了一个自定义定位器函数,该函数将这个实例作为输入并返回WebElement
,或者将解析为WebElement的Promise。如果返回的Promise解析为WebElements数组,则WebDriver将使用第一个元素。例如,要查找页面上的第一个可见链接,可以编写:
var link = element.findElement(firstVisibleLink);
function firstVisibleLink(element) {
var links = element.findElements(By.tagName('a'));
return promise.filter(links, function(link) {
return link.isDisplayed();
});
}
参数: (By|Function) 搜索元素时要使用的定位器策略
返回值: WebElementPromise 一个WebElement,可用于对所定位的元素发出命令。如果找不到该元素,则该元素将无效,并且所有计划的命令都将中止。
this.findElements( locator )
查找与给定搜索条件匹配的该元素的所有后代。
参数: (By|Function) 搜索元素时要使用的定位器策略
返回值: Promise<Array<WebElement>>
this.getAttribute( attributeName )
检索此元素给定属性的当前值。即使页面加载后已被修改,也将返回当前值。更准确地说,此方法将返回给定属性的值,除非不存在该属性,在这种情况下,将返回具有相同名称的属性的值。如果未设置任何值,则返回null(例如,textarea元素的“ value”属性)。"style "属性被尽可能地转换为带有分号的文本表示。以下内容被视为“布尔”属性,并且将返回“ true”或null:
async, autofocus, autoplay, checked, compact, complete, controls, declare, defaultchecked, defaultselected, defer, disabled, draggable, ended, formnovalidate, hidden, indeterminate, iscontenteditable, ismap, itemscope, loop, multiple, muted, nohref, noresize, noshade, novalidate, nowrap, open, paused, pubdate, readonly, required, reversed, scoped, seamless, seeking, selected, spellcheck, truespeed, willvalidate
最后,对以下通常用大写字母表示的属性/属性名称进行了评估:
- “class”
- “readonly”
参数: 要查询的属性的名称
返回值: Promise(string|null)
返回的值将始终为字符串或null
this.getCssValue( cssStyleProperty )
检索此实例的计算style属性的值。如果元素从其父项继承命名样式,则将查询其父项的值。在可能的情况下,颜色值将转换为它们的十六进制表示形式(例如,用#00ff00代替rgb(0,255,0))。
警告: 返回的值将是浏览器解释的值,所以要形成一个正确的断言可能会很棘手。
参数: 要查询的css样式的名称
返回值: 可以通过请求的CSS值resolve的Promise
this.getDriver()
参数: 无
返回值: WebDriver 此实例的父驱动程序
this.getId()
参数: 无
返回值: Promise<string>
解析到服务器分配给这个元素的不透明ID的Promise。
this.getRect()
返回一个对象,该对象描述元素的位置(以相对于文档元素的像素为单位),以及元素的大小(以像素为单位)。
参数: 无
返回值: Promise<{height: number, width: number, x: number, y: number}>
this.getTagName()
检索元素的标签名称
参数: 无
返回值: Promise<string>
this.getText()
获取这个元素的可见(即不被CSS隐藏)的内文,包括子元素,不含任何前空格或尾部空格。
参数: 无
返回值: Promise<string>
this.isDisplayed()
测试当前是否显示此元素
参数: 无
返回值: Promise<boolean>
this.isEnabled()
测试该元素是否启用,由disabled属性决定。
参数: 无
返回值: Promise<boolean>
this.isSelected()
测试该元素是否被选中。
参数: 无
返回值: Promise<boolean>
this.sendKeys( …args )
在本实例所代表的DOM元素上键入一个键序列。
修饰键(SHIFT、CONTROL、ALT、META)是有状态的;一旦按键顺序处理了修饰符,就会切换该键状态,直到发生以下情况之一:
- 修饰符键在序列中再次遇到。此时,键的状态被切换(以及相应的键上/下事件)。
- 在序列中遇到
input.Key.NULL
键。当遇到这个键时,当前处于down状态的所有修饰键都会被释放(同时伴随着上键事件)。NULL键可以用来模拟常见的键盘快捷键。
element.sendKeys("text was",
Key.CONTROL, "a", Key.NULL,
"now text is");
// Alternatively:
element.sendKeys("text was",
Key.chord(Key.CONTROL, "a"),
"now text is");
- 遇到键序列的结尾。如果没有更多可键入的键,则释放所有按下的修饰键(以及伴随的键入事件)。
如果此元素是文件输入(<input type="file">
),则指定的键序列应指定要附加到该元素的文件的路径。这类似于用户单击“浏览…”,然后在文件选择对话框中输入路径。
var form = driver.findElement(By.css('form'));
var element = form.findElement(By.css('input[type=file]'));
element.sendKeys('/path/to/file.txt');
form.submit();
为了使上传正确运行,输入的路径必须引用浏览器机器上的文件,而不是运行该脚本的本地机器。当针对远程Selenium服务器运行时,可以使用input.FileDetector
在尝试在浏览器中上传文件之前透明地将文件复制到远程机器上。
注意:在不支持本地键盘事件的浏览器上(例如OS X上的Firefox),将合成按键事件。特殊的标点符号键将根据标准QWERTY en-us键盘布局进行合成。
参数: …(number|string|IThenable(number|string)) 要键入的键的顺序。数字键可以通过数字或字符串(1或“ 1”)来引用。所有参数将合并为一个序列。
返回值: Promise<undefined>
this.submit()
提交包含该元素的表单(如果该元素本身是FORM元素,则提交该元素),如果该元素不包含在表单中,则他的命令是无操作。
参数: 无
返回值: Promise<undefined>
this.takeScreenshot( scroll )
截取此元素的边界矩形所包含的可见区域的屏幕快照。
参数: (boolean|undefined) 可选参数,指示在拍摄屏幕快照之前是否应将元素滚动到视图中。默认为false。
返回值: Promise<string>
它将以base-64编码的PNG形式解析到屏幕截图中
静态功能
WebElement.buildId( id, noLegacy )
参数:
- ID string 原始ID
- noLegacy (boolean|undefined) 是否排除旧元素key
返回值: Object 与WebDriver的有线协议一起使用的元素ID
WebElement.equals( a, b )
比较两个WebElement是否相等。
参数: a、b为WebElement
返回值: Promise<boolean>
WebElement.extractId( obj )
从对象中提取编码的WebElement ID。
参数: 要从中提取ID的对象
返回值: string 提取的ID
throw: (TypeError|null) 如果对象不是有效的编码ID
WebElement.isId( obj )
参数: 要测试的对象
返回值: boolean 该对象是否是有效的编码WebElement ID