Web Transaction(Browser) 监视器的高级 Web 脚本编辑
Web Transaction (Browser) 监视器会录制并保存用户在 Web 脚本中的操作。这些功能强大的脚本通过真实浏览器模拟来衡量 Web 性能,描述鼠标点击、验证、导航等操作。您可以使用内联客户端 Web 脚本编辑器更新现有 Web 脚本操作。这一高级 Web 脚本工具可让您修改录制的操作,并在无需重新录制事务的情况下更新 Web Transaction (Browser) 监视器配置。默认情况下, Web Transaction (Browser) 使用名为 智能回放 的功能来识别 HTML 元素的属性级变化,并自动更新您录制的脚本。但如果您想停用智能回放,请在高级 Web 脚本编辑器中输入并执行命令 update_intelligent_play_candidates("false") 。
以下是用于更新 Web 脚本的各种命令。请注意在编辑器中更新这些表达式的格式。
- 命令中的每个参数均为必填项。但对于参数 DISPLAY_NAME,您可以在保持各命令定义格式的前提下,在双引号之间传入空值。
- 如果您尝试执行会触发下载的点击操作,将会看到弹窗提示"不支持文件下载"。请注意,Web Transaction 监视器不支持文件下载操作,您需要关闭弹窗才能继续。
-
Click_element_by_id/name/linktext/css/xpath("<ELEMENT_ID/NAME/LINKTEXT/CSS/XPATH>","<DISPLAY_NAME>","<INTELLIGENT_PLAY_CANDIDATES>")
当一个命令包含以 "/" 分隔的多个名称时,表示该函数与具有不同主标识符类型的命令相关联。
点击元素有五种主标识符类型:
click_element_by_id("<ELEMENT_ID>","<DISPLAY_NAME>","<INTELLIGENT_PLAY_CANDIDATES>")
click_element_by_name("<NAME>","<DISPLAY_NAME>","<INTELLIGENT_PLAY_CANDIDATES>")
click_element_by_linktext("<LINKTEXT>","<DISPLAY_NAME>","<INTELLIGENT_PLAY_CANDIDATES>")
click_element_by_css("<CSS>","<DISPLAY_NAME>","<INTELLIGENT_PLAY_CANDIDATES>")
click_element_by_xpath("<XPATH>","<DISPLAY_NAME>","<INTELLIGENT_PLAY_CANDIDATES>")
Web 脚本命令
1. 创建步骤。
load_page("<OPEN_URL>")
示例
load_page("https://www.vtitan.com/coporate.html")
如果"忽略步骤状态"属性设置为 true,则即使当前步骤失败,您也可以继续执行下一步骤——前提是该错误不影响事务的正常进行。如果设置为 false,则当步骤失败时事务处理将停止。例如:
begin_step("Step 1: Loading http://www.vtitan.com", "http://www.vtitan.com ", "true")
begin_step("Step 2: Loading http://www.vtitan.com", "http://www.vtitan.com ", "false")
2. 打开网页。
load_page("<OPEN_URL>")
示例
load_page("https://www.vtitan.com/coporate.html")
OPEN_URL = 启动事务的基础 URL
3. 等待页面加载直到收到 HTTP 状态码 200。
wait_for_page_to_load()
每次涉及 URL 变更的操作之后均需包含此命令
4. 验证页面状态。
verify_page_load_status()
每次涉及 URL 变更的操作之后均需包含此命令
5. 指定身份验证凭据。
set_auth_credentials("<DOMAIN>","<USER_NAME>","<PASSWORD>")
示例
set_auth_credentials("vtitan.com","xyz","123")
- DISPLAY_NAME 供内部使用
- INTELLIGENT_PLAY_CANDIDATES - INTELLIGENT_PLAY_CANDIDATES 包含元素的标识符,可用于访问特定元素。如果某个标识符失败,仍可使用其余可用标识符访问该元素。不同类型的元素标识符应使用 #SEP# 分隔符分隔,不同的 XPath 应使用 #XPATH# 分隔符分隔
- 语法:
#SEP#id=<ELEMENT_ID>#SEP#name=<ELEMENT_NAME>#SEP#linktext=<ELEMENT_LINKTEXT>#SEP#css=<ELEMENT_CSS>#xpath=<ELEMENT_XPATH_1>#XPATH#<ELEMENT_XPATH_2>#XPATH#<ELEMENT_XPATH_3>#XPATH##SEP#
6. 点击元素。
click_element_by_id/name/linktext/css/xpath("<ELEMENT_ID/NAME/LINKTEXT/CSS/XPATH>","<DISPLAY_NAME>","<INTELLIGENT_PLAY_CANDIDATES>")
示例
click_element_by_id("corporate","disp_corp","#SEP#id=corporate#SEP#name=corporate#SEP#linktext=CORPORATE#SEP
#css=#topmenu>li>a#SEP#xpath=//a[contains(text(),'CORPORATE')]#XPATH#//ul[@id='topmenus']/li/a#XPATH#
//a[contains(@href, 'corporate.html')]#XPATH#//tr[2]/td/ul/li/a#XPATH##SEP#")
- 对于 click_element_by_id,第一个参数应为 ELEMENT_ID;对于 click_element_by_name,第一个参数应为 ELEMENT_NAME,其他属性类型依此类推。
- INTELLIGENT_PLAY_CANDIDATES - INTELLIGENT_PLAY_CANDIDATES 包含元素的标识符,可用于访问特定元素。如果某个标识符失败,仍可使用其余可用标识符访问该元素。不同类型的元素标识符应使用 #SEP# 分隔符分隔,不同的 XPath 应使用 #XPATH# 分隔符分隔
7. 双击元素。
double_click_by_id/name/linktext/css/xpath("<ELEMENT_ID/NAME/LINKTEXT/CSS/XPATH>","<DISPLAY_NAME>","<INTELLIGENT_PLAY_CANDIDATES>")
示例
double_click_by_id("corporate","disp_corp","#SEP#id=corporate#SEP#name=corporate#SEP#linktext=CORPORATE#SEP
#css=#topmenu>li>a#SEP#xpath=//a[contains(text(),'CORPORATE')]#XPATH#//ul[@id='topmenus']/li/a#XPATH#//a[contains
(@href, 'corporate.html')]#XPATH#//tr[2]/td/ul/li/a#XPATH##SEP#")
- 对于 double_click_by_id,第一个参数应为 ELEMENT_ID;对于 double_click_by_name,第一个参数应为 ELEMENT_NAME,其他属性类型依此类推。
- INTELLIGENT_PLAY_CANDIDATES - INTELLIGENT_PLAY_CANDIDATES 包含元素的标识符,可用于访问特定元素。如果某个标识符失败,仍可使用其余可用标识符访问该元素。不同类型的元素标识符应使用 #SEP# 分隔符分隔,不同的 XPath 应使用 #XPATH# 分隔符分隔
8. 鼠标悬停在元素上。
mouse_over_by_id/name/linktext/css/xpath("<ELEMENT_ID/NAME/LINKTEXT/CSS/XPATH>","<DISPLAY_NAME>","<INTELLIGENT_PLAY_CANDIDATES>")
示例
mouse_over_by_id("corporate","disp_corp","#SEP#id=corporate#SEP#name=corporate#SEP#linktext=CORPORATE#SEP#
css=#topmenu>li>a#SEP#xpath=//a[contains(text(),'CORPORATE')]#XPATH#//ul[@id='topmenus']/li/a#XPATH#
//a[contains(@href, 'corporate.html')]#XPATH#//tr[2]/td/ul/li/a#XPATH##SEP#")
- 对于 mouse_over_by_id,第一个参数应为 ELEMENT_ID;对于 mouse_over_by_name,第一个参数应为 ELEMENT_NAME,其他属性类型依此类推。点击元素和鼠标悬停使用相同的参数,只是函数名称不同。
- INTELLIGENT_PLAY_CANDIDATES - INTELLIGENT_PLAY_CANDIDATES 包含元素的标识符,可用于访问特定元素。如果某个标识符失败,仍可使用其余可用标识符访问该元素。不同类型的元素标识符应使用 #SEP# 分隔符分隔,不同的 XPath 应使用 #XPATH# 分隔符分隔
9. 在输入字段中输入值。
set_text_by_id/name/css/xpath("<ELEMENT_ID/NAME/CSS/XPATH>","<TEXT_VALUE>","<DISPLAY_NAME>","<INTELLIGENT_PLAY_CANDIDATES>")
示例
set_text_by_id("username","xyzuser","disp_username","#SEP#id=username#SEP#name=username#SEP#css=
#topmenu>li>input[1]#SEP#xpath=//ul[@id='topmenus']/li/input[1]#XPATH#//input[1]#XPATH
#//tr[2]/td/ul/li/input[1]#XPATH##SEP#")
- 对于 set_text_by_id,第一个参数应为 ELEMENT_ID;对于 set_text_by_name,第一个参数应为 ELEMENT_NAME,其他属性类型依此类推。
- TEXT_VALUE - 要在文本字段中输入的值
- INTELLIGENT_PLAY_CANDIDATES - INTELLIGENT_PLAY_CANDIDATES 包含元素的标识符,可用于访问特定元素。如果某个标识符失败,仍可使用其余可用标识符访问该元素。不同类型的元素标识符应使用 #SEP# 分隔符分隔,不同的 XPath 应使用 #XPATH# 分隔符分隔
10. 在输入字段中输入值。
type_keys_by_id/name/css/xpath("<ELEMENT_ID/NAME/CSS/XPATH>","<TEXT_VALUE>","<DISPLAY_NAME>","<INTELLIGENT_PLAY_CANDIDATES>")
示例
type_keys_by_id("username","xyzuser","disp_username","#SEP#id=username#SEP#name=username#SEP#css=#
topmenu>li>input[1]#SEP#xpath=//ul[@id='topmenus']/li/input[1]#XPATH#//input[1]#XPATH
#//tr[2]/td/ul/li/input[1]#XPATH##SEP#")
- 对于 type_keys_by_id,第一个参数应为 ELEMENT_ID;对于 type_keys_by_name,第一个参数应为 ELEMENT_NAME,其他属性类型依此类推。
- TEXT_VALUE - 要在文本字段中输入的值
- INTELLIGENT_PLAY_CANDIDATES - INTELLIGENT_PLAY_CANDIDATES 包含元素的标识符,可用于访问特定元素。如果某个标识符失败,仍可使用其余可用标识符访问该元素。不同类型的元素标识符应使用 #SEP# 分隔符分隔,不同的 XPath 应使用 #XPATH# 分隔符分隔
11. 添加密码。
set_password_by_id/name/css/xpath("<ELEMENT_ID/NAME/CSS/XPATH>","<PASSWORD>","<DISPLAY_NAME>","<INTELLIGENT_PLAY_CANDIDATES>")
示例
set_password_by_id(password,"123password","disp_password","#SEP#id=password#SEP#name=password#SEP
#css=#topmenu>li>input[2]#SEP#xpath=//ul[@id='topmenus']/li/input[2]#XPATH#//input[2]#XPATH
#//tr[2]/td/ul/li/input[2]#XPATH##SEP#")
- 对于 click_element_by_id,第一个参数应为 ELEMENT_ID;对于 click_element_by_name,第一个参数应为 ELEMENT_NAME,其他属性类型依此类推。
- Password - 要在密码字段中输入的密码
- INTELLIGENT_PLAY_CANDIDATES - INTELLIGENT_PLAY_CANDIDATES 包含元素的标识符,可用于访问特定元素。如果某个标识符失败,仍可使用其余可用标识符访问该元素。不同类型的元素标识符应使用 #SEP# 分隔符分隔,不同的 XPath 应使用 #XPATH# 分隔符分隔
12. 从下拉菜单中选择条目。
a) 按 innerHTML 选择。
select_text_by_id/name/css/xpath("<ELEMENT_ID/NAME/CSS/XPATH>","<TEXT>","<DISPLAY_NAME>","<INTELLIGENT_PLAY_CANDIDATES>")
示例
select_text_by_id("state","california","disp_state","#SEP#id=id_state#SEP#name=name_state#SEP#css=#topmenu>li>select[3]
#SEP#xpath=//ul[@id='topmenus']/li/select[3]#XPATH#//select[3]#XPATH#//li/select[3]#XPATH##SEP#")
INTELLIGENT_PLAY_CANDIDATES - INTELLIGENT_PLAY_CANDIDATES 包含元素的标识符,可用于访问特定元素。如果某个标识符失败,仍可使用其余可用标识符访问该元素。不同类型的元素标识符应使用 #SEP# 分隔符分隔,不同的 XPath 应使用 #XPATH# 分隔符分隔
b) 按值选择。
select_value_by_id/name/css/xpath("<ELEMENT_ID/NAME/CSS/XPATH>","<VALUE>","<DISPLAY_NAME>","<INTELLIGENT_PLAY_CANDIDATES>")
示例
select_value_by_id("state","California-US","disp_state","#SEP#id=id_state#SEP#name=name_state#SEP#css=#topmenu>li>select[3]#SEP
#xpath=//ul[@id='topmenus']/li/select[3]#XPATH#//select[3]#XPATH#//li/select[3]#XPATH##SEP#")
INTELLIGENT_PLAY_CANDIDATES - INTELLIGENT_PLAY_CANDIDATES 包含元素的标识符,可用于访问特定元素。如果某个标识符失败,仍可使用其余可用标识符访问该元素。不同类型的元素标识符应使用 #SEP# 分隔符分隔,不同的 XPath 应使用 #XPATH# 分隔符分隔
c) 按索引选择。
select_index_by_id/name/css/xpath("<ELEMENT_ID/NAME/CSS/XPATH>","<INDEX>","<DISPLAY_NAME>","<INTELLIGENT_PLAY_CANDIDATES>")
示例
select_index_by_id("state","3","disp_state","#SEP#id=id_state#SEP#name=name_state#SEP#css=#topmenu>li>select[3]
#SEP#xpath=//ul[@id='topmenus']/li/select[3]#XPATH#//select[3]#XPATH#//li/select[3]#XPATH##SEP#")
索引从 0 开始。
13. 取消选中复选框。
clear_selection_by_id/name/css/xpath("<ELEMENT_ID/NAME/CSS/XPATH>","<DISPLAY_NAME>")
示例
clear_selection_by_id("cartype","disp_name")
14. 选中复选框。
check_by_id/name/css/xpath("<ELEMENT_ID/NAME/CSS/XPATH>","<DISPLAY_NAME>","<INTELLIGENT_PLAY_CANDIDATES>")
示例
check_by_id("volvo","car_type","#SEP#id=volvo#SEP#name=volvo#SEP#css=#topmenu>li>input[1]#SEP
#xpath=//ul[@id='topmenus']/li/input[1]#XPATH#//input[1]#XPATH#//tr[2]/td/ul/li/input[1]#XPATH##SEP#")
15. 取消选中复选框。
uncheck_by_id/name/css/xpath("<ELEMENT_ID/NAME/CSS/XPATH>","<DISPLAY_NAME>","<INTELLIGENT_PLAY_CANDIDATES>")
示例
uncheck_by_id("volvo","car_type","#SEP#id=volvo#SEP#name=volvo#SEP#css=#topmenu>li>input[1]
#SEP#xpath=//ul[@id='topmenus']/li/input[1]#XPATH#//input[1]#XPATH#//tr[2]/td/ul/li/input[1]#XPATH##SEP#")
16. 在执行操作前选择框架。
select_frame_by_id/name/index/src("<FRAME_ID/NAME/INDEX/SRC>")
select_frame("relative=up") - 从特定框架返回到顶层框架。
示例
select_frame_by_id("topframe")
在子框架内执行操作后,请使用 select_frame("relative=up")
17. 选择父窗口。
selectMainWindow()
18. 在执行操作前选择窗口。
select_window_by_name/title/index("<WINDOW_NAME/TITLE/INDEX>")
示例
select_window_by_name("contentWindow")
19. 关闭窗口。
示例
close_window_by_name/title/index("<WINDOW_NAME/TITLE/INDEX>")
close_window() - 关闭最后选中的窗口
close_window_by_name("contentWindow")
此处使用的 WINDOW_NAME/TITLE/INDEX 应与 select_window 中使用的一致。
20. 暂停指定时长。
wait("<TIME_IN_MILLISECONDS>")
示例
wait("5000")
时间应以毫秒为单位指定。
21. 验证网页上是否存在指定文本
assert_text_present("\"<TEXT_1>\" \"<TEXT_2>\"", "true")
示例
assert_text_present("CORPORATE","true")
assert_text_present("\"CORPORATE\" \"PRODUCTS\"","true")
要验证网页上是否存在多段文本,请将每段文本用双引号括起来并转义双引号(\"CORPORATE\")。如果指定为 "true",即使在失败时事务步骤的回放也不会停止。如果指定为 "false",则回放将在失败时立即停止。
22. 验证网页上是否不存在指定文本
assert_text_not_present("\"<TEXT_1>\" \"<TEXT_2>\"", "true")
示例
assert_text_not_present("error","true")
assert_text_not_present("\"error\" \"warning\"","true")
要验证网页上是否不存在多段文本,请将每段文本用双引号括起来并转义双引号(\"error\")。如果指定为 "true",即使在失败时事务步骤的回放也不会停止。如果指定为 "false",则回放将在失败时立即停止。
23. 检查当前网页的标题
assert_title("<TITLE>")
示例
assert_title("vTitan | Safer Health for everyone")
24. 指定弹出框确认内容
assert_confirmation("<ALERT_BOX_MESSAGE>")
示例
assert_confirmation("Do you want to log out?")
25. 确认告警框
assert_alert("<ALERT_BOX_MESSAGE>")
示例
assert_alert("Do you want to log out?")
26. 获取提示框中使用的文本
answer_on_next_prompt("<PROMPT_TEXT>")
示例
answer_on_next_prompt("XYZ")
27. 检查提示消息
answer_on_next_prompt("<PROMPT_TEXT>")
示例
answer_on_next_prompt("XYZ")
28. 忽略模态对话框
ignore_modal_dialog("true")
29. 验证您的 URL
assert_location("<URL>", "true")
示例
assert_location("http://vtitan.com/corporate.html", "true")
要验证当前加载的 URL,请将其用双引号括起来(\"URL\")。如果指定为 "true",即使在失败时事务步骤的回放也不会停止。如果指定为 "false",则回放将在失败时立即停止。
assert_location("<URL>", "<BOOLEAN>", "<BOOLEAN>")
示例
assert_location("http://zylker.com/corporate", "true", "true")
要验证当前 URL,请将其用双引号括起来(\"URL\")。如果第二个参数指定为 "true",即使在失败时事务步骤的回放也不会停止。如果指定为 "false",则回放将在失败时立即停止。如果最后一个参数为 true,将检查当前加载 URL 中是否包含指定内容;如果为 false,则将与加载的 URL 进行精确匹配。
30.等待元素加载
wait_for_element_presence("identifier", "identifier_value", timeout)
示例
wait_for_element_presence("id", "country_code", "40")
The wait_for_element_visibility function waits for the element to become visible before interacting with it. This approach helps to prevent errors that might occur if your script tries to interact with an element that is not yet visible to the user.
31.等待页面加载
set_page_load_timeout("45")
注意:这将在默认值基础上额外增加 15 秒等待时间。
示例: 检查 Vtitan.com 的状态
步骤 1:
加载 URL(http://www.vtitan.com)
检查不存在关键词 "error"
步骤 2:
点击 CORPORATE
检查存在关键词 "PRODUCTS"

32. 打开同一域名下的新 URL
navigate_to("www.vtitan.com/products.html")
这将在不执行任何点击操作的情况下打开页面 vtitan.com/products。
33. 验证网页上是否存在元素关键词
assert_element_keyword_check("<IDENTIFIER>","<IDENTIFIER_ID/NAME/CSS/XPATH>","VALUE")
assert_element_keyword_check("<IDENTIFIER>","<IDENTIFIER_ID/NAME/CSS/XPATH>","VALUE","CONTINUE_ON_FAILURE")
说明:
此命令检查给定网站元素内是否存在特定关键词。它会自动验证指定元素是否存在及可见。通过可选参数,可以在关键词断言失败时决定继续还是停止。如果可选参数设置为 true,即使断言失败,下一条命令仍将继续执行。
示例:
assert_element_keyword_check("id","state","California")
assert_element_keyword_check("id","state","California","false")
- IDENTIFIER - 标识符类型,必须是以下之一:id、name、css 或 xpath。
- IDENTIFIER_ID/NAME/CSS/XPATH - 已声明标识符的值。
- VALUE - 需要在指定元素内容中匹配的关键词。
- CONTINUE_ON_FAILURE(可选参数)- 值必须为 true 或 false。如果为 true,即使关键词不存在,事务也将继续,监视器状态标记为"故障"。如果为 false,事务将立即停止,监视器状态设置为"宕机"。默认值为 true。
34. 验证网页上是否存在某个元素
assert_element_check("identifier", "identifier_value")
注意
标识符可以是 id、name、css 或 xpath 等任意类型。示例
assert_element_check("id", "state")
等待元素出现可以提高测试脚本的健壮性和可靠性。这一技术对于使用 Angular、Vue、React 等框架的单页应用尤为有用,因为这些框架通常在不重新加载页面的情况下更新网页。
35. 等待元素可见
此方法可能不适用于 AJAX 调用。
wait_for_element_visibility("identifier", "identifier_value", timeout)
示例
wait_for_element_visibility("id", "country_code", "40")
当内容或链接发生变化或具有动态性时,应使用静态 XPath(基于位置的 XPath)。Site24x7 也会捕获 XPath,但需要去除其他属性,仅保留基于位置的 XPath。
使用动态标识符的操作:
click_element_by_id("az1234","disp_corp","#SEP#id=az1234#SEP#name=az1235#SEP##SEP#linktext=test123
#SEP#xpath=//a[contains(text(),'test123')]#XPATH#xpath=//ul [@id='topmenus1234']/li/a#XPATH#//a
[contains(@href,'tesing123.html')] #XPATH#//tr[2]/td/ul/li/a#XPATH##SEP#")
去除动态标识符并使用基于位置的 XPath 后,操作变为:
click_element_by_xpath("//tr[2]/td/ul/li/a","disp_corp","#SEP#xpath=//tr[2]/td/ul/li/a#XPATH##SEP#")
此外,在某些情况下,如果录制时无法获取静态的基于位置的 XPath,则可以手动创建。
在测试自动化中,验证页面加载状态对于避免脚本尝试与尚未完全加载的页面元素交互至关重要。等待页面完全加载有助于防止由异步行为、网络连接缓慢或动态内容加载导致的元素不可用错误。
36. 上传测试文件
upload_file("identifier", "identifier_value", "file_type", "display_name")
注意
标识符值可以是 ID/NAME/LINKTEXT/CSS/XPATH,支持的文件类型为 txt/jpg/png/zip/json/csv/xml。示例
upload_file("id", "state", "jpg", "display_name")
37. If 条件
if(conditionalMethod(arguments)):
- commands -
elseif(conditionalMethod(arguments)):
- commands -
else():
- commands -
endif():
条件方法的返回值为 "true" 或 "false",即 conditionalMethod(arguments) 将返回 true 或 false。
可以使用 click_element 和 assertText 等命令。一个块中可包含多条命令。
-
若 if(true),"if" 下的命令将执行,跳过 "else if" 和 "else"。
-
若 if(false),"if" 下的命令将被跳过,并检查下一个条件(如 "else if");若 "else if" 条件也不满足,则继续检查下一个 "else if"(如存在)或 "else" 条件。
if(conditionalMethod()): 或 elseif(conditionalMethod())):
如果您想检查某个元素是否可用,可以使用 is_element_available 方法。
示例:
is_element_available("element_by_id/name/linktext/css/xpath", "<ELEMENT_ID/NAME/LINKTEXT/CSS/XPATH>") ===> 2 个参数
示例:
if(is_element_available("xpath","//a[contains(text(),CLOSE)]")):
如果您想检查当前网页中是否存在某个词语,可以使用 is_content_available 方法:is_content_available("网页中存在的任意词语") ===> 1 个参数
示例:
if(is_content_available("CLOSE")):
如果您想检查某个元素是否包含特定词语,可以使用以下 is_elementwithcontent_available 方法
示例:
is_elementwithcontent_available("element_by_id/name/linktext/css/xpath" , "<ELEMENT_ID/NAME/LINKTEXT/CSS/XPATH>" , ") ===> 3 个参数
- 第一个参数 - 标识符类型
- 第二个参数 - 标识符的值
- 第三个参数 - 词语
示例:
if(is_elementwithcontent_available("xpath" , "//a[contains(text(),'OFFER')]" , "offer")):
只能使用上述提供的方法。
38. 在页面中滚动
这些命令允许您在执行其他操作之前在自动化页面中向上或向下滚动。
scroll_up("NUMERICAL_VALUE")
scroll_up()
scroll_down("NUMERICAL_VALUE")
scroll_down()
示例:
scroll_up("1000")
scroll_up()
scroll_down("1000")
scroll_down()
NUMERICAL_VALUE 表示向上或向下滚动所需的像素数,取值范围为 1 到 100,000 像素。默认滚动值为 700 像素。
