帮助手册 管理 添加监视器 Web 脚本编辑器(浏览器)

Web 事务(浏览器)监视器中的高级 Web 脚本编辑

Web 事务(浏览器)监视器记录用户操作并将其保存在 Web 脚本中。这些功能强大的脚本可作为一种通过真实浏览器模拟来衡量 Web 性能的方法。这些脚本描述了鼠标点击、验证、导航等操作。您可以使用我们的内联客户端 Web 脚本编辑器更新现有的 Web 脚本操作。这个高级 Web 脚本工具让您可以操作记录的操作并更新您的 Web 事务(浏览器)监视器配置,而无需使用记录器重新记录事务。默认情况下,   Web 事务(浏览器)使用称为 智能播放的功能识别 HTML 元素的属性级别变化;并自动更新您录制的脚本。但是,如果您想停止智能播放, 请在高级 Web 脚本编辑器中输入并执行命令update_intelligent_play_candidates("false") 

以下是用于更新 Web 脚本的各种命令。请注意这些表达式在编辑器中更新的格式。

  • 命令中的每个参数都是必需的。但是,对于参数 DISPLAY_NAME,您可以在双引号之间传递一个空值,同时保持每个命令的定义格式。
  • 如果您尝试执行会启动下载的单击操作,您将看到一个弹出窗口“不支持文件下载”。请注意,网络事务监视器不支持文件下载操作,您需要关闭弹出框才能继续。

网页脚本命令

1. 创建步骤.

命令:begin_step("<STEP_NAME>","<STEP_URL>")

示例:
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").

如果属性忽略步骤状态设置为 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 = Base_URL to start a transaction

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 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/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。click 元素和 mouseover 都采用相同的参数;只有函数名称发生变化。
  • 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 和其他属性分别给出。
  • 密码 - 需要在密码字段中输入的密码
  • INTELLIGENT_PLAY_CANDIDATES - INTELLIGENT_PLAY_CANDIDATES 包含元素的标识符,可用于访问特定元素。如果标识符失败,仍然可以使用剩余的可用标识符访问该元素。不同类型的元素标识符应由#SEP#分隔符分隔,不同的XPath应由#XPATH#分隔符分隔

12. 从选择菜单中选择一个条目。

a)  Select by 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 by value.

命令: 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 by index.

命令: 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>","<INTELLEGENT_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>","<INTELLEGENT_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. 在执行动作之前选择一个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")
在子框架内执行任何操作后使用 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() - closes the last selected 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. 查看提示信息。

命令: assert_prompt("<PROMPT_MESSAGE">)

示例:
assert_prompt("Please enter your name")

28. 忽略模态对话。

命令: ignore_modal_dialog("true")

29. 验证您的网址。

命令: assert_location("<URL>","true")

示例:
assert_location("http://vtitan.com/corporate.html","true")
要验证当前加载的 URL,请用双引号 (\"URL\") 指定它。如果您将其指定为“true”,则即使在失败期间,事务步骤的回放也不会停止。但是,如果您将其指定为“false”,则播放将在报告失败时停止。

30.等待一个元素加载。

注意:这可能不适用于 AJAX 调用。

命令: wait_for_element_presence("identifier","identifier_value",timeout)


示例:

wait_for_element_presence("id","country_code","40")

31.等待页面加载。

命令: set_page_load_timeout("45")

这将比默认值增加 15 秒的额外等待时间。

示例: Check the status of Vtitan.com
Step 1:
加载 url (http://www.vtitan.com)
检查关键字不存在"error"

Step 2:
点击 CORPORATE
检查关键字"PRODUCTS"

32. 打开同一个域的新 URL。

示例: navigate_to("www.vtitan.com/products.html")

注意:这将打开页面 vtitan.com/products 而不执行任何单击操作。

33. 验证网页上是否存在元素关键字。

命令: assert_element_keyword_check("identifier","identifier_value","value" )

Note: The identifier could be anything such as an id, name, css or xpath.

示例: assert_element_keyword_check("id","state","California")

34. 验证网页上是否存在元素。

命令: assert_element_check("identifier","identifier_value")

Note: The identifier could be anything such as an id, name, css or xpath.

示例: assert_element_check("id","state")

35. 等待元素可见。

注意:这可能不适用于 AJAX 调用。
命令: wait_for_element_visibility("identifier","identifier_value",timeout)

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,那么您可以手动创建它。

帮助手册 管理 添加监视器 高级 Web脚本编辑在事务监视器