JavaScript在selenium当中的使用

本文详细介绍了在Selenium中如何使用JavaScript进行字符串匹配、DOM定位、流控制以及处理HTML中的JS弹窗。通过示例展示了使用JavaScript进行正则表达式匹配、DOM操作和自定义扩展,并提供了在Selenium IDE中进行流程控制的方法。
摘要由CSDN通过智能技术生成


Selenium中字符串匹配

正则表达式增加了匹配的灵活性和代码的适用范围。

使用字符串匹配的地方

  1. selenium IDE中很多命令参数写的是“pattern”,看到这个pattern就可以使用以下匹配方式来写参数:

    • glob:全局定位符:*(任何字符)、?(单个字符)。默认
    • regexp:JS 版本的正则表达式
    • regexpi:case-insensitive,大小写敏感的
    • exact:精准匹配

使用时,在参数前加相应前缀即可:regexp:^[0-9]a
Selenese(selenium IDE命令语言的名称) globbing patterns只支持*和[ ]. Selenese regexp提供与JS相同的特殊字符的序列。
使用举例:

PATTERN MATCH
. any single character
[ ] character class: any single character that appears inside the brackets
* quantifier: 0 or more of the preceding character (or group)
+ quantifier: 1 or more of the preceding character (or group)
? quantifier: 0 or 1 of the preceding character (or group)
{1,5} quantifier: 1 through 5 of the preceding character (or group)
| alternation: the character/group on the left or the character/group on the right
( ) grouping: often used with alternation and/or quantifier

2. 其中regexp完全使用JS的正则表达式。正则表达式每个语言有不同的实现版本,具体书写的时候需要查看相应语言的官方说明。
JS正则表达式的参考:http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp

DOM定位

Selenium中DOM定位的方式采用的是JS的DOM操作方式:
- dom=document.div[‘XXXX’].button[0] 以document.开头
- document.div[0].button[2]
- dom=function foo{ return document.getElementById(“XXXXname”);}; foo();

这种方式的优缺点(相对于其他定位方式xpath,css,id,name,link等):
- 优点:JS允许动态定位,使用灵活
- 缺点:依赖于页面结构

使用示例:英文版w3

JS HTML DOM

在HTML DOM的帮助下,JS可以获取、操作HTML文件中所有的元素
当一个页面下载时,浏览器就会生成这个页面的DOM。
有了对象模型,JS可以做到的功能有:
- JS可以改变所有HTML元素
- JS可以改变所有属性
- JS可以改变CSS styles
- JS可以移除已存在的HTML元素和属性
- JS可以增加新的HTML元素和属性
- JS可以响应所有存在的HTML事件

点击链接查看完整参考中文网版w3

Flow Control

Selenese本身是不提供条件语句、循环迭代的功能。
在功能性测试时,动态content,可能会涉及到多个页面,这时候可能会涉及到流控制。
当需要使用Flow Control时,有下列三个选项:
1. 使用 Selenium-RC和Client Li

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值