2 浏览器项目 JavaScript 对象
概述
本节描述了使用Duktape实现的Zabbix对JavaScript语言的扩展,用于在浏览器项目脚本中使用。 这些扩展补充了附加JavaScript对象页面中描述的JavaScript对象。
浏览器
Browser
对象管理WebDriver会话,在创建时初始化会话,并在销毁时终止会话。 单个脚本最多可以支持四个Browser
对象。
要构造一个Browser
对象,使用new Browser(options)
语法。 options
(JSON对象)参数指定浏览器选项,通常是WebDriver选项方法的结果(例如,Browser.chromeOptions()
)。
以下方法与Browser
对象一起使用。
方法 | 描述 |
---|---|
navigate(url) | 导航到指定的URL。 参数: url - (字符串)要导航到的URL。 |
getUrl() | 返回已打开页面的URL的字符串。 |
getPageSource() | 返回已打开页面的源代码的字符串。 |
findElement(strategy, selector) | 返回打开页面中一个元素的Element对象(如果没有元素与strategy 和selector 匹配,则返回null )。参数: strategy - (字符串,CSS选择器/链接文本/部分链接文本/标签名/Xpath)定位策略;selector - (字符串)使用指定定位策略的元素选择器。 |
findElements(strategy, target) | 返回打开页面中多个元素的Element对象数组(如果没有元素与位置策略和目标匹配,则返回空数组)。 参数: strategy - (字符串,CSS选择器/链接文本/部分链接文本/标签名/Xpath)定位策略;target - (字符串)使用指定定位策略的元素选择器。 |
getCookies() | 返回一个Cookie对象数组。 |
addCookie(cookie) | 设置cookie。 参数: cookie - (Cookie对象)要设置的cookie。 |
getScreenshot() | 返回浏览器视口的字符串(base64编码的图像)。 |
setScriptTimeout(timeout) | 设置脚本加载超时。 参数: timeout - (整数)超时值(以毫秒为单位)。 |
setSessionTimeout(timeout) | 设置会话(页面加载)超时。 参数: timeout - (整数)超时值(以毫秒为单位)。 |
setElementWaitTimeout(timeout) | 设置元素定位策略(隐式)超时。 参数: timeout - (整数)超时值(以毫秒为单位)。 |
collectPerfEntries(mark) | 收集性能条目以用于getResult() 方法检索。参数: mark - (字符串,可选)性能快照标记。 |
getRawPerfEntries() | 返回性能条目对象的数组。 |
getResult() | 返回一个带有浏览器会话统计信息(错误信息、性能快照等)的Result对象。 |
getError() | 返回一个带有浏览器错误的BrowserError 对象(如果没有浏览器错误,则返回null )。 |
setError(message) | 设置自定义错误消息,以包含在Result对象中。 参数: message - (字符串)错误消息。 |
discardError() | 丢弃要在Result对象中返回的错误。 |
getAlert() | 返回一个带有浏览器警报的Alert对象(如果没有浏览器警报,则返回null )。 |
chromeOptions() | 返回一个具有预定义Chrome浏览器选项的chromeOptions 对象。 |
firefoxOptions() | 返回一个具有预定义Firefox浏览器选项的firefoxOptions 对象。 |
safariOptions() | 返回一个具有预定义Safari浏览器选项的safariOptions 对象。 |
edgeOptions() | 返回一个具有预定义Edge浏览器选项的edgeOptions 对象。 |
所有Browser方法都可能抛出以下错误:
BrowserError
- 派生自抛出Browser
构造函数失败的Error
对象;包含一个额外的browser
属性,其中包含抛出此BrowserError
的Browser
对象。WebdriverError
- 派生自BrowserError
;包含与BrowserError
对象相同的属性,指示错误是否是响应于WebDriver响应中的错误。#### 浏览器
Browser
对象管理WebDriver会话,在创建时初始化会话,并在销毁时终止会话。 单个脚本最多可以支持四个Browser
对象。
要构造一个Browser
对象,使用new Browser(options)
语法。 options
(JSON对象)参数指定浏览器选项,通常是WebDriver选项方法的结果(例如,Browser.chromeOptions()
)。
以下方法与Browser
对象一起使用。
方法 | 描述 |
---|---|
navigate(url) | 导航到指定的URL。 参数: url - (字符串)要导航到的URL。 |
getUrl() | 返回已打开页面的URL的字符串。 |
getPageSource() | 返回已打开页面的源代码的字符串。 |
findElement(strategy, selector) | 返回打开页面中一个元素的Element对象(如果没有元素与strategy 和selector 匹配,则返回null )。参数: strategy - (字符串,CSS选择器/链接文本/部分链接文本/标签名/Xpath)定位策略;selector - (字符串)使用指定定位策略的元素选择器。 |
findElements(strategy, target) | 返回打开页面中多个元素的Element对象数组(如果没有元素与位置策略和目标匹配,则返回空数组)。 参数: strategy - (字符串,CSS选择器/链接文本/部分链接文本/标签名/Xpath)定位策略;target - (字符串)使用指定定位策略的元素选择器。 |
getCookies() | 返回一个Cookie对象数组。 |
addCookie(cookie) | 设置cookie。 参数: cookie - (Cookie对象)要设置的cookie。 |
getScreenshot() | 返回浏览器视口的字符串(base64编码的图像)。 |
setScriptTimeout(timeout) | 设置脚本加载超时。 参数: timeout - (整数)超时值(以毫秒为单位)。 |
setSessionTimeout(timeout) | 设置会话(页面加载)超时。 参数: timeout - (整数)超时值(以毫秒为单位)。 |
setElementWaitTimeout(timeout) | 设置元素定位策略(隐式)超时。 参数: timeout - (整数)超时值(以毫秒为单位)。 |
collectPerfEntries(mark) | 收集性能条目以用于getResult() 方法检索。参数: mark - (字符串,可选)性能快照标记。 |
getRawPerfEntries() | 返回性能条目对象的数组。 |
getResult() | 返回一个带有浏览器会话统计信息(错误信息、性能快照等)的Result对象。 |
getError() | 返回一个带有浏览器错误的BrowserError 对象(如果没有浏览器错误,则返回null )。 |
setError(message) | 设置自定义错误消息,以包含在Result对象中。 参数: message - (字符串)错误消息。 |
discardError() | 丢弃要在Result对象中返回的错误。 |
getAlert() | 返回一个带有浏览器警报的Alert对象(如果没有浏览器警报,则返回null )。 |
chromeOptions() | 返回一个具有预定义Chrome浏览器选项的chromeOptions 对象。 |
firefoxOptions() | 返回一个具有预定义Firefox浏览器选项的firefoxOptions 对象。 |
safariOptions() | 返回一个具有预定义Safari浏览器选项的safariOptions 对象。 |
edgeOptions() | 返回一个具有预定义Edge浏览器选项的edgeOptions 对象。 |
所有Browser方法都可能抛出以下错误:
BrowserError
- 源自抛出Browser
构造函数失败的Error
对象;包含一个额外的browser
属性,其中包含抛出此BrowserError
的Browser
对象。WebdriverError
- 源自BrowserError
;包含与BrowserError
对象相同的属性,指示错误是否是响应于WebDriver响应中的错误。
Element
Element
对象由Browser对象的findElement()
/findElements()
方法返回,不能直接构造。
Element
对象表示网页中的元素,并提供与之交互的方法。
以下方法与Element
对象一起使用。
方法 | 描述 |
---|---|
getAttribute(name) | 返回元素属性的属性值字符串(如果未找到指定的属性,则返回null )。参数: name - (字符串)属性名称。 |
getProperty(name) | 返回元素属性的属性值字符串(如果未找到指定的属性,则返回null )。参数: name - (字符串)属性名称。 |
getText() | 返回元素文本的文本值字符串。 |
click() | 单击元素。 |
clear() | 清除可编辑元素的内容。 |
sendKeys(keys) | 发送按键。 参数: keys - (字符串)要发送的按键。 |
Cookie
Cookie
对象由Browser对象的getCookies()
方法返回,并传递给addCookie()
方法。
虽然Cookie
对象没有任何方法,但它可以包含以下属性:
属性 | 类型 | 描述 |
---|---|---|
name | string | cookie的名称。 |
value | string | cookie的值。 |
path | string | cookie有效的路径。 如果在添加cookie时省略,则默认为 “/“ 。 |
domain | string | cookie可见的域。 如果在添加cookie时省略,则默认为会话当前浏览上下文的活动文档的URL域。 |
secure | boolean | 指示cookie是否安全的布尔值。 如果在添加cookie时省略,则默认为 false 。 |
httpOnly | boolean | 指示cookie是否为HTTP-only的布尔值。 如果在添加cookie时省略,则默认为 false 。 |
expiry | integer | cookie的过期时间(自Unix纪元以来的秒数)。 如果在添加cookie时省略,则不能设置。 |
sameSite | string | cookie的sameSite 属性,用于控制cookie是否应限制在第一方或同站点上下文中。可以设置为 “Lax” 或“Strict” 。如果在添加cookie时省略,则默认为 “None” 。 |
Alert
Alert
对象表示网页警报,由Browser对象的getAlert()
方法返回,不能直接构造。
Alert
对象包含具有警报文本的text
属性(如果没有警报,则为null
)。
以下方法与Alert
对象一起使用。
方法 | 描述 |
---|---|
accept() | 接受警报。 |
dismiss() | 关闭警报。 |
Result
Result
对象包含会话统计信息,并由Browser对象的getResult()
方法返回。
通常,Result
对象被字符串化并从脚本返回,然后通过预处理解析为依赖项值。
虽然Result
对象没有任何方法,但它可以包含以下属性。
属性 | 类型 | 描述 |
---|---|---|
duration | string | 从会话创建到结果检索的会话持续时间。 |
error | object | 错误信息。 |
http_status | integer | WebDriver返回的HTTP状态(如果没有WebDriver错误,则为0)。 |
error_code | string | WebDriver返回的错误(如果没有WebDriver错误,则为空字符串)。 |
message | string | WebDriver错误消息(如果没有WebDriver错误,则为空字符串)。 |
performance_data | object | 性能统计信息。 |
summary | object | 性能摘要。 |
navigation | object | 导航摘要。 |
resource | object | 资源摘要。 |
details | array of objects | 可能导致导航的每个操作后的性能统计信息。 |
mark | string | (可选)与collectPerfEntries()方法一起指定的性能快照标记。 |
navigation | object | 导航统计信息。 |
resource | object | 此步骤的资源摘要。 |
user | array of objects | 标记/测量类型统计信息数组。 |
marks | array of objects | 标记的性能快照索引。 |
name | string | 性能快照标记名称。 |
index | integer | 详细信息数组中的性能快照索引。 |