在开始这部分课程以前,咱们须要一个附件网页用来演示如下操做:
请下载如下附件,保存到到电脑某个位置: html
若是咱们按照用户的操做来上传文件,步骤会很是繁琐,并且操做系统的文件夹操做须要另外一个库AutoItLibrary的支持,来对操做系统窗口定位和操做,很是麻烦。
这里咱们有一个更好的选择,分析上传文件按键的html代码,它实质上是一个<input>
元素。
前端
那么咱们能够直接对它input text
,输入的文本就是文件的路径。
python
须要注意的是:在Python或Java中的路径表达式中,windows的
\
要被替换为\\
或者/
。
由于Java或Python中,\
是转义字符,单\
毫无心义 windows
咱们在访问网站的时候,有时会忽然弹出一个小窗口,上面写着一段提示信息文字。若是你不点击“肯定”,就不能对网页作任何操做,这个小窗口就是使用alert实现的。
这个alert的弹出由前端的JS语句决定,可是弹出框自己却不是网页代码的一部分,而是由浏览器弹出,因此咱们没法对这个弹出框进行定位和直接Click操做。
浏览器
SeleniumLibrary这里可使用Handle Alert
关键字来处理 网站
做用:处理alert弹出框 参数:两个可选参数action和timeout,action默认为ACCEPT,timeout默认为None
ACCEPT:接受alert警告,至关于点击OK或肯定
DISMISS:取消alert警告,至关于点击Cancel或取消
LEAVE:离开alert警告,保持alert为打开 ui
timeout设置等待alert弹出的时间,若是不单独设置,会使用全局的timeout设置
此关键字是seleniumLibrary3.0新出现的,取代之前的Choose XXX On Next Confirmation
Alert弹出框有三种分别是alert(只有肯定键),confirm(有肯定和取消两个按键),prompt(除开两个按键还有一个输入框)编码
下拉菜单在网页中是<select>
元素 spa
下拉菜单未展开的时候,菜单中的选项没法click,咱们操做下拉菜单有两种方式:
一种是模拟用户的操做,先click下拉菜单,再click展开的菜单选项
另外一种就是使用seleniumLibrary提供的关键字来操做下拉菜单:
Select From List By Index
-- index:<option>
选项的index索引值,注意第一项从0开始
Select From List By Label
-- lable:<option>
选项中对应文本值
Select From List By Value
-- value:<option>
选项中对应value属性值 操作系统
注意:若是是单选下拉菜单,多于一项有相同值时,最后一项将被选中
若是是多选下拉菜单,多于一项有相同值时,多项将被选中,可是可能以前选中的选项不会被清除
单选框RadioBox的操做比较简单,直接按照用户逻辑,要选哪项直接click就能够了
复选框CheckBox的操做稍微麻烦一点,麻烦不在点击动做自己,而是复选框是能够取消点击的。
第一次点击是选中,第二次点击是取消,因此在点击以前最好肯定被点击的选项是否已经被选中。
在网页操做中有时会遇到须要翻页,或者发送键盘按键,这时就须要用到关键字:
Press Key
做用:对定位元素模拟用户按键
参数:两个必选参数locator定位符和key按键
key:按键能够是一个字母、或者\开始的按键的ASCII码值
若是是对整个网页模拟按键,建议使用根元素xpath:/html
\ue0f是python中pageDown下翻页按键码值的unicode编码,其它按键的编码参考下图:
![]()
frame和iframe都是网页的内嵌网页,当咱们遇到某些元素位于frame或者iframe时,若是不对操做的当前页面进行切换,讲没法操做这些元素。
例如这个网站: https://www.layui.com/admin/std/dist/views/
在这个页面中,若是咱们要操做右侧的元素,必须先将内嵌的iframe切换为当前页面,不然没法点击。
这里咱们须要用到一个关键字:
做用:切换定位符定位的页面为当前页面
参数:一个必选参数,frame的定位符
可是,若是这时咱们又要操做左侧面板的元素,会发现又不能操做了,这是由于咱们的操做当前页面是右侧页面,这时咱们须要把当前页面切换回主页面
做用:切换主页面为当前页面
无参数
注意切换网页要分析网页结构,使用select frame只能往当前网页的下级页面切换,因此往上或者往平级的页面切换必须先unselect frame
当咱们点击连接弹出一个新的浏览器窗口时,咱们在新的浏览器窗口操做须要手动切换浏览器窗口。
做用:切换浏览器窗口到定位符匹配的窗口
参数:一个参数locator默认为MAIN
返回值:前一个窗口的handle
若是定位的窗口被找到,全部随后的操做将基于这个新定位的窗口,直到这个关键字再次被调用。
若是定位的窗口找不到,这个关键字失败,前一个窗口的handle已被返回,能够用来返回前一个窗口。
窗口的定位策略:
- 默认状况下,窗口定位符匹配窗口的handle,name,title,URL
,匹配会按照这个顺序匹配第一个符合的窗口。
- 窗口定位符能够具体使用显式的定位策略,使用格式: strategy:value
(推荐) or strategy=value
支持的策略有:name,title和URL
。
- 定位符为NEW
,最后一个打开的窗口被切换。若是与当前窗口相同将会报错。
- 定位符为MAIN
,主窗口被选中。
- 定位符为CURRENT
,没什么做用,只是返回当前窗口的的handle。
- 定位符不是一个字符串时,必须是一个被排除的窗口handle list。这个list应该是以前使用Get Window Handles
获取的。
这里使用http://news.baidu.com/,点击第一个到第四个新闻连接,来作一个切换窗口的演示。
strategy:value
参数只在seleniumLibrary3.0或以后版本支持 以前版本支持的别名:None,Null
和空字符串用来切换主窗口,和别名selft
切换当前窗口,在3.0版本都过期了
在3.0以前版本匹配窗口的name,title和URL
曾是大小写敏感的
原文出处:https://www.cnblogs.com/jeknight/p/11270585.html