python3已支持robotframework了,所有安装python3+robotframework的同志:
安装Selenium2Library:
pip install robotframework-selenium2library
Selenium2Library的关键字说明 | ||
关键字类型 | 关键字 | 解释 |
browserManagement | Open Browser | 打开浏览器 |
Close Browser | 关闭浏览器 | |
Go to | 访问某个URL | |
Go Back | 相当于浏览器的后退 | |
Select Window | 只有当选择对应窗口,才可操作其元素;通常结合Wait Until Keyword Succeeds来使用 | |
Wait Until Keyword Succeeds | 等待元素 | |
Close Window | 关闭窗口,不过通常情况下,都是会自动关闭窗口的 | |
Close All Browsers | 关闭所以浏览器 | |
Close Browser | 关闭当前浏览器,若要关闭其他的浏览器,还需切换到另一浏览器再关闭 | |
Switch Browser | 切换浏览器 | |
Select Window | 切换要使用的Window | |
select window by handle | 通过handle选择window | |
get window handles | 获取当前线程所有window的handles | |
get current window handle | 获取当前窗口的handle | |
Select Frame | 选择frame或iframe,才可操作里面的元素;如frame/iframe层数多,也要一层层的选择进入 | |
Unselect Frame | 直接跳出所有的frame 或iframe; | |
备注:Browser是通过Open Browser创建的,每一个Browser都是Webdriver创建的,可以理解为一个独立的线程;在当前线程的Broser上打开的页面是Window;一个Browser可以打开多个Window;每次操作只能在一个Window上进行,如果当前Window关闭,需要切换到其他Window上,才能继续操作;若不切换,这时候的任一操作都是在关闭的Window上进行,会报错; 在Select Window时,经常会遇到模态窗口,即不一定能直接选择到,此时,需要通过3个handle相关的关键字去操作 | ||
关键字类型 | 关键字 | 解释 |
Cookie | add cookie | 添加cookie |
delete cookie | 删除cookie | |
delete all cookie | 删除所有cookie | |
get cookies | 获取所有cookie | |
get cookie value | 获取cookie的值 | |
备注:测试的网站有需要对Cookie进行操作的,就使用上面的关键字处理 | ||
Elements | ||
说明:操作Elements开始,需要知道locator,即:用来定位页面元素的;locator就是告诉Selenium要对哪个对象操作;locator有:id,name,xpath,css,jQuery,sizzle等,也可以用DOM,HTMLtag等,但是id、name最方便;尤其是id,一把开发人员都会加上元素id;不加就是水平不到位; | ||
关键字类型 | 关键字 | 解释 |
普通elements | click element | 都是元素点击事件;不赘述 |
click link | ||
click image | ||
press key | 模拟键盘操作;举例:有些时候点击不好用,就可以用“press key\\13”模拟“回车”替代点击 | |
Assign id to element | 一个元素对象若没有id,可以指定一个id给它,就不用写冗长的locator了 | |
mouse down | 鼠标操作、笔者推荐使用AutoItLibrary模块下的鼠标操作 | |
mouse up | ||
mouse over | ||
mouse out | ||
get horizontal position | 获取当前对象的左上角顶点距离整个页面的横坐标、纵坐标 | |
get vertical position | ||
get value | 获取页面元素的value或text,若没有text就获取空值 | |
get text | ||
get element attribute | 获取元素属性;举例:要获取class值,则:get element attribute element_id@class | |
说明:上面是普通元素,下面是表单元素;form也就是表单,虽然这里起名fromelement | ||
关键字类型 | 关键字 | 解释 |
formelement | submit form | 用于提交表单 |
checkbox | select checkbox\unselect checkbox:作用是勾选复选框/不勾选复选框 | |
radio buttons | select radio button:单选框 | |
说明:下面是text fields部分的element操作关键字 | ||
text fields | choose file | 用于上传文件的时候选择文件 |
input text | 本质一样,只不过input password在输入密码的日志上不会把密码打印出来 | |
input password | ||
Button | click button | 点击按钮 |
说明:SelectElement主要是介绍列表框,列表框分单选和多选 | ||
关键字类型 | 关键字 | 解释 |
SelectElement | select from list | 选择列表框中的某一项 |
select from list by index | 分别通过index/value/label来选择列表项 | |
select from list by value | ||
select from list by label | ||
select all from list | 用于多选列表框想要全部选择 | |
unselect from list | 注意:只有多选列表框才能unselect;取消选择 | |
unselect from list by index | 分别通过index/value/label来取消选择列表项;注意:若想取消所以选中项,就把后面的label和value改成labels和values | |
unselect from list by value | ||
unselect from list by label | ||
说明:Web页面里面最多出现的对象就是table了,使用最多的关键字就是get table cell | ||
tableElement | get table cell | 可以获取指定table里的指定行列的元素文本值 |
JavaScript | ||
关键字类型 | 关键字 | 解释 |
JavaScript | confirm action | 自动进行对话框确认;若想让confirm action 点击取消,需要使用choose cancel on text confirmation 进行设置,然后再使用confirm action;注意:choose cancel只是进行设置,确认还是靠confirm action; 同样要恢复默认点击“确认”,是需要用choose ok on next cinfirmation进行设置,再使用confirm action的 |
choose cancel on text confirmation | ||
choose ok on next cinfirmation | ||
screenshot | ||
关键字类型 | 关键字 | 解释 |
screenshot | screenshot capture page screenshot | 对当前页面进行截图 |
备注:该截图动作是基于当前浏览器的页面的;若此时由于程序报错页面关闭,截图就没法使用;可以尝试修改该方法,让他使用RF自带的截图库里的方法进行截图,那个是基于整个桌面的 | ||
waiting | ||
关键字类型 | 关键字 | 解释 |
waiting | wait for condition | 这里其实就是显示等待,会持续尝试条件是否满足直到超时; 本人愿意推荐使用BuiltIn里的关键字Wait Until Keyword Succeeds; 而wait until page的两个关键字在页面加载比较慢的时候还是挺有用的; |
wait until page contains | ||
wait until page contains element |