Web 事务(浏览器)监视器中的高级 Web 脚本编辑
Web 事务(浏览器)监视器记录用户操作并将其保存在 Web 脚本中。这些功能强大的脚本可作为一种通过真实浏览器模拟来衡量 Web 性能的方法。这些脚本描述了鼠标点击、验证、导航等操作。您可以使用我们的内联客户端 Web 脚本编辑器更新现有的 Web 脚本操作。这个高级 Web 脚本工具让您可以操作记录的操作并更新您的 Web 事务(浏览器)监视器配置,而无需使用记录器重新记录事务。默认情况下, Web 事务(浏览器)使用称为 智能播放的功能识别 HTML 元素的属性级别变化;并自动更新您录制的脚本。但是,如果您想停止智能播放, 请在高级 Web 脚本编辑器中输入并执行命令update_intelligent_play_candidates("false") 。
以下是用于更新 Web 脚本的各种命令。请注意这些表达式在编辑器中更新的格式。
- 命令中的每个参数都是必需的。但是,对于参数 DISPLAY_NAME,您可以在双引号之间传递一个空值,同时保持每个命令的定义格式。
- 如果您尝试执行会启动下载的单击操作,您将看到一个弹出窗口“不支持文件下载”。请注意,网络事务监视器不支持文件下载操作,您需要关闭弹出框才能继续。
网页脚本命令
1. 创建步骤.
示例:
begin_step("Step 1: Loading http://www.vtitan.com","http://www.vtitan.com")
begin_step("Step 2: Click CORPORATE","http://www.vtitan.com/corporate.html").
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("https://www.vtitan.com/coporate.html")
3. 等待页面加载,直到收到 HTTP 状态代码 200。
4. 验证页面状态。
5. 指定身份验证凭证。
示例:
set_auth_credentials("vtitan.com","xyz","123")
- DISPLAY_NAME for internal use
- 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("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("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("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。click 元素和 mouseover 都采用相同的参数;只有函数名称发生变化。
- INTELLIGENT_PLAY_CANDIDATES - INTELLIGENT_PLAY_CANDIDATES 包含元素的标识符,可用于访问特定元素。如果标识符失败,仍然可以使用剩余的可用标识符访问该元素。不同类型的元素标识符应由#SEP#分隔符分隔,不同的XPath应由#XPATH#分隔符分隔
9. 在输入字段中输入值。
示例:
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("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(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 和其他属性分别给出。
- 密码 - 需要在密码字段中输入的密码
- INTELLIGENT_PLAY_CANDIDATES - INTELLIGENT_PLAY_CANDIDATES 包含元素的标识符,可用于访问特定元素。如果标识符失败,仍然可以使用剩余的可用标识符访问该元素。不同类型的元素标识符应由#SEP#分隔符分隔,不同的XPath应由#XPATH#分隔符分隔
12. 从选择菜单中选择一个条目。
a) Select by innerHTML.
示例:
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#
b) Select by value.
示例:
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#
c) Select by index.
示例:
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#
13. 取消选中该复选框。
示例:
clear_selection_by_id("cartype","disp_name")
14. 选中复选框。
示例:
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("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. 在执行动作之前选择一个frame。
select_frame_by_id/name/index/src("<FRAME_ID/NAME/INDEX/SRC>")
select_frame("relative=up") - for moving back to top frame from the specific frame.
示例:
select_frame_by_id("topframe")
17. 选择一个父窗口。
selectMainWindow()
18. 在执行任何操作之前选择一个窗口。
示例:
select_window_by_name("contentWindow")
19. 关闭窗口。
close_window_by_name/title/index("<WINDOW_NAME/TITLE/INDEX>")
close_window() - closes the last selected window
示例:
close_window_by_name("contentWindow")
20. 暂停特定时间。
示例:
wait("5000")
21. 验证网页上是否存在文本。
示例:
assert_text_present("CORPORATE","true")
assert_text_present("\"CORPORATE\" \"PRODUCTS\"","true")
22. 验证网页上没有文字。
示例:
assert_text_not_present("error","true")
assert_text_not_present("\"error\" \"warning\"","true")
23. 检查当前网页的标题。
示例:
assert_title("vTitan | Safer Health for everyone")
24. 指定告警的确认。
示例:
assert_confirmation("Do you want to log out?")
25. 确认告警框。
示例:
assert_alert("Do you want to log out?")
26. 获取提示框中要使用的文本。
示例:
answer_on_next_prompt("XYZ")
27. 查看提示信息。
示例:
assert_prompt("Please enter your name")
28. 忽略模态对话。
29. 验证您的网址。
示例:
assert_location("http://vtitan.com/corporate.html","true")
30.等待一个元素加载。
注意:这可能不适用于 AJAX 调用。
示例:
wait_for_element_presence("id","country_code","40")
31.等待页面加载。
这将比默认值增加 15 秒的额外等待时间。
Step 1:
加载 url (http://www.vtitan.com)
检查关键字不存在"error"
Step 2:
点击 CORPORATE
检查关键字"PRODUCTS"
32. 打开同一个域的新 URL。
注意:这将打开页面 vtitan.com/products 而不执行任何单击操作。
33. 验证网页上是否存在元素关键字。
Note: The identifier could be anything such as an id, name, css or xpath.
示例: assert_element_keyword_check("id","state","California")
34. 验证网页上是否存在元素。
Note: The identifier could be anything such as an id, name, css or xpath.
示例: assert_element_check("id","state")
35. 等待元素可见。
Example: 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,那么您可以手动创建它。