2 浏览器项目 JavaScript 对象

概述

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

Browser

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

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

Browser 对象支持以下方法。

Method Description
navigate(url) 导航到指定的 URL。

参数:
url - (string) 要导航到的 URL。
getUrl() 返回已打开页面 URL 的字符串。
getPageSource() 返回已打开页面源代码的字符串。
findElement(strategy, selector) 返回一个 Element 对象,表示已打开页面中的单个元素(如果没有元素匹配 strategyselector,则返回 null)。

参数:
strategy - (string, css selector/link text/partial link text/tag name/xpath) 定位策略
selector - (string) 使用指定定位策略的元素选择器。
findElements(strategy, target) 返回一个包含多个 Element 对象的数组,表示已打开页面中的多个元素(如果没有元素匹配定位策略和 target,则返回空数组)。

参数:
strategy - (string, css selector/link text/partial link text/tag name/xpath) 定位策略
target - (string) 使用指定定位策略的元素选择器。
getCookies() 返回一个 Cookie 对象数组。
addCookie(cookie) 设置 Cookie。

参数:
cookie - (Cookie object) 要设置的 Cookie。
getScreenshot() 返回一个 base64 编码的字符串,表示浏览器视口的图像。
setScreenSize(x,y) 设置浏览器视口大小。

参数:
x - (string) 以像素为单位的宽度;
y - (string) 以像素为单位的高度。
setScriptTimeout(timeout) 设置脚本加载超时时间。

参数:
timeout - (integer) 以毫秒为单位的超时值。
setSessionTimeout(timeout) 设置会话(页面加载)超时时间。

参数:
timeout - (integer) 以毫秒为单位的超时值。
setElementWaitTimeout(timeout) 设置元素定位策略的(隐式)超时时间。

参数:
timeout - (integer) 以毫秒为单位的超时值。
collectPerfEntries(mark) 收集性能条目,以便通过 getResult() 方法获取。

参数:
mark - (string, optional) 性能快照标记。
getRawPerfEntries() 返回一个性能条目对象数组。
getResult() 返回一个 Result 对象,其中包含浏览器会话统计信息(错误信息、性能快照等)。
getError() 返回一个包含浏览器错误的 BrowserError 对象(如果没有浏览器错误,则返回 null)。
setError(message) 设置一条自定义错误消息,以包含在 Result 对象中。

参数:
message - (string) 错误消息。
discardError() 丢弃将在 Result 对象中返回的错误。
getAlert() 返回一个包含浏览器警报的 Alert 对象(如果没有浏览器警报,则返回 null)。
chromeOptions() 返回一个包含预定义 Chrome 浏览器选项的 chromeOptions 对象。
firefoxOptions() 返回一个包含预定义 Firefox 浏览器选项的 firefoxOptions 对象。
safariOptions() 返回一个包含预定义 Safari 浏览器选项的 safariOptions 对象。
edgeOptions() 返回一个包含预定义 Edge 浏览器选项的 edgeOptions 对象。
switchFrame(target) 切换到指定的 frame。

参数:
target - (浏览器元素或 integer,可选)目标 frame。要按元素选择 frame,请传入该元素。要按索引选择 frame,请传入数字。如果留空,则切换到顶层浏览上下文。

所有 Browser 方法都可能抛出以下错误:

  • BrowserError - 派生自 Error 对象;如果 Browser 构造函数失败,则会抛出该错误;包含一个额外的 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 对象没有任何方法,但它可以包含以下属性:

属性 Type 说明
name string Cookie 的名称。
value string Cookie 的值。
path string Cookie 有效的路径。
添加 Cookie 时如果省略,默认为 "/"
domain string Cookie 可见的域。
添加 Cookie 时如果省略,默认为会话当前浏览上下文的活动文档的 URL 域。
secure boolean 指示 Cookie 是否为安全 Cookie。
添加 Cookie 时如果省略,默认为 false
httpOnly boolean 指示 Cookie 是否仅限 HTTP。
添加 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 详细信息数组中的性能快照索引。