直接进入正题,对于使用robotframework编写自动化用例时,经常会碰到各种下拉框,下面详情说明各种下拉框的操作。
div格式的下拉框
源码如下
<ul class="select2-results" xpath="1">
<li class="select2-results-dept-0 select2-result select2-result-selectable">
<div class="select2-result-label">
<span class="select2-match"></span>------请选择------</div>
</li>
<li class="select2-results-dept-0 select2-result select2-result-selectable">
<div class="select2-result-label">
<span class="select2-match"></span>中级职称及以下</div>
</li>
<li class="select2-results-dept-0 select2-result select2-result-selectable">
<div class="select2-result-label">
<span class="select2-match"></span>副高</div>
</li>
<li class="select2-results-dept-0 select2-result select2-result-selectable">
<div class="select2-result-label">
<span class="select2-match"></span>正高</div>
</li>
<li class="select2-results-dept-0 select2-result select2-result-selectable">
<div class="select2-result-label">
<span class="select2-match"></span>院士</div>
</li>
<li class="select2-results-dept-0 select2-result select2-result-selectable select2-highlighted">
<div class="select2-result-label">
<span class="select2-match"></span>全国知名专家
</div>
</li>
</ul>
页面显示如图
定位方法:
用户管理-职级级别-副高
click element xpath=//div[@id='s2id_jobInfo']//span[@class='select2-chosen']
sleep 3
click element xpath=//li[5]//div[1]
如图:
直接使用 xpath=//li[5]//div[1]
即可定位下拉框中的[副高]元素。
这里推荐一个很好用的xpath定位工具ChroPath,不管是谷歌还是火狐浏览器都可以使用的。
当然还有其他格式的如select-option
类型的下拉框,也可以采用这种定位方式操作的,这里暂时没遇到,暂时留个悬念吧......
滚动条操作
在元素定位时经常会遇到提示元素找不到,首先排查是否在iframe框架;如果确认没有iframe框架,还有一种可能是当前可见区域没有找到该元素,需要滚动滚动条才能看到。当时在执行自动化用例时对于同一个用例偶然会出现执行结果不一样的操作,后来经过排查是滚动条在作怪~
使用关键字Excute Javascript
运行Javascript
脚本,如下
# 将滚动条置于页面顶部 | ||
---|---|---|
Excute Javascript | document.documentElement.scrollTop=1000 | |
# 将滚动条置于页面底部 | ||
Excute Javascript | document.documentElement.scrollTop=0 |
如图