2 浏览器项目 JavaScript 对象

概述

本节描述了使用Duktape实现的Zabbix对JavaScript语言的扩展,用于在浏览器项目脚本中使用。 这些扩展补充了附加JavaScript对象页面中描述的JavaScript对象。

浏览器

Browser对象管理WebDriver会话,在创建时初始化会话,并在销毁时终止会话。 单个脚本最多可以支持四个Browser对象。

要构造一个Browser对象,使用new Browser(options)语法。 optionsJSON对象)参数指定浏览器选项,通常是WebDriver选项方法的结果(例如,Browser.chromeOptions())。

以下方法与Browser对象一起使用。

方法描述
navigate(url)导航到指定的URL。

参数:
url - (字符串)要导航到的URL。
getUrl()返回已打开页面的URL的字符串。
getPageSource()返回已打开页面的源代码的字符串。
findElement(strategy, selector)返回打开页面中一个元素的Element对象(如果没有元素与strategyselector匹配,则返回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属性,其中包含抛出此BrowserErrorBrowser对象。
  • WebdriverError - 派生自BrowserError;包含与BrowserError对象相同的属性,指示错误是否是响应于WebDriver响应中的错误。#### 浏览器

Browser对象管理WebDriver会话,在创建时初始化会话,并在销毁时终止会话。 单个脚本最多可以支持四个Browser对象。

要构造一个Browser对象,使用new Browser(options)语法。 optionsJSON对象)参数指定浏览器选项,通常是WebDriver选项方法的结果(例如,Browser.chromeOptions())。

以下方法与Browser对象一起使用。

方法描述
navigate(url)导航到指定的URL。

参数:
url - (字符串)要导航到的URL。
getUrl()返回已打开页面的URL的字符串。
getPageSource()返回已打开页面的源代码的字符串。
findElement(strategy, selector)返回打开页面中一个元素的Element对象(如果没有元素与strategyselector匹配,则返回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属性,其中包含抛出此BrowserErrorBrowser对象。
  • 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对象由Browser对象的getCookies()方法返回,并传递给addCookie()方法。

虽然Cookie对象没有任何方法,但它可以包含以下属性:

属性类型描述
namestringcookie的名称。
valuestringcookie的值。
pathstringcookie有效的路径。
如果在添加cookie时省略,则默认为“/“
domainstringcookie可见的域。
如果在添加cookie时省略,则默认为会话当前浏览上下文的活动文档的URL域。
secureboolean指示cookie是否安全的布尔值。
如果在添加cookie时省略,则默认为false
httpOnlyboolean指示cookie是否为HTTP-only的布尔值。
如果在添加cookie时省略,则默认为false
expiryintegercookie的过期时间(自Unix纪元以来的秒数)。
如果在添加cookie时省略,则不能设置。
sameSitestringcookie的sameSite属性,用于控制cookie是否应限制在第一方或同站点上下文中。
可以设置为“Lax”“Strict”
如果在添加cookie时省略,则默认为“None”

Alert

Alert对象表示网页警报,由Browser对象的getAlert()方法返回,不能直接构造。

Alert对象包含具有警报文本的text属性(如果没有警报,则为null)。

以下方法与Alert对象一起使用。

方法描述
accept()接受警报。
dismiss()关闭警报。

Result

Result对象包含会话统计信息,并由Browser对象的getResult()方法返回。

通常,Result对象被字符串化并从脚本返回,然后通过预处理解析为依赖项值。

虽然Result对象没有任何方法,但它可以包含以下属性。

属性类型描述
durationstring从会话创建到结果检索的会话持续时间。
errorobject错误信息。
http_statusintegerWebDriver返回的HTTP状态(如果没有WebDriver错误,则为0)。
error_codestringWebDriver返回的错误(如果没有WebDriver错误,则为空字符串)。
messagestringWebDriver错误消息(如果没有WebDriver错误,则为空字符串)。
performance_dataobject性能统计信息。
summaryobject性能摘要。
navigationobject导航摘要。
resourceobject资源摘要。
detailsarray of objects可能导致导航的每个操作后的性能统计信息。
markstring(可选)与collectPerfEntries()方法一起指定的性能快照标记。
navigationobject导航统计信息。
resourceobject此步骤的资源摘要。
userarray of objects标记/测量类型统计信息数组。
marksarray of objects标记的性能快照索引。
namestring性能快照标记名称。
indexinteger详细信息数组中的性能快照索引。