Robotframework是一个基于关键字测试驱动的框架,它能够基于一定的规则,导入你需要的测试库(例如seleniumlibrary,databaselibrary),然后基于这些测试库,编写自己的关键字,之后,编写测试用例进行测试。关键字颗粒大小可以自己进行定制。
本文记录了使用seleniumlibrary测试库遇见的一些问题以及解决办法。
1、定位动态出现且无法通过鼠标操作的元素
可以使用键盘操作:
先按F12,页面切换到Sources,按下F8进行断点调试,然后页面切到Elements会话框,可正常定位到动态出现的元素
2、JS处理滚动条
当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的。这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上。滚动条是无法直接用定位工具来定位的。selenium 里面也没有直接的方法去控制滚动条,这时候只能借助JS了。
滚动条回到顶部
Execute Javascript document.documentElement.scrollTop=0
滚动条回到底部
Execute Javascript document.documentElement.scrollTop=10000
3、设置浏览器的缩放比例
设置浏览器的缩放比例为75%
Execute Javascript document.body.style.zoom='0.75'
Execute Javascript document.getElementById("y-container").style.zoom='0.7'
4、JS 修改readonly 属性
Execute Javascript document.getElementById(‘id’).removeAttribute(‘readonly’)
Execute Javascript document.getElementById(‘id’).value=’value值‘
其他属性值可以参考,但是并不是所有的属性值都是可以修改的,比如属性值是一个函数的返回值,此时就不可以修改属性值。
Execute Javascript document.getElementById(‘id’).target=’target值‘
5、Click失效解决
1、先点击父元素,在点击当前需要操作元素
2、直接使用JS点击
Execute Javascript document.getElementById(‘id’).click()
6、input输入框无法输入
如果遇到input输入框无法输入的问题,可以先点击input输入框,然后在进行输入操作。
7.为复杂定位的元素分配临时的ID
Assign Id To Element xpath=//div[@class='icon-content'][text()='下一步'] myid
Execute Javascript document.getElementById('myid').click()