关于RF对于不在屏幕内的页面元素的处理办法

简介:

1、碰到的问题:

最近在公司用Robot framework+Selenium2Library做项目,碰到部分页面比较长,无法完全显示在屏幕内,需要上下滚动滚动条才能看到下半部分的页面元素。于是呼,问题就来了,当我操作未在屏幕内的”继续”按钮(实际是一个超链接)时,案例失败,提示:

ElementNotVisibleException: Message: u'Cannot click on element'。

HTML代码:

<A id=submitButton title=继续href="javascript:void(0)" >继续>继续</A>

 

2、解决过程:

a)  起初我以为RF不能识别不在屏幕内的页面元素,咨询同事说可以处理,于是自己又开始研究,发现RF确实可以识别不在幕内的页面元素(比如输入框)。通过先对输入框进行赋值操作后,由于屏幕自己下拉继续按钮已经显示在屏幕内了,于是问题看上去似乎解决了。

b)  然而,好景不长,另一个页面出现了同样的问题而且只有一个继续按钮不在屏幕内(无法使用a中先操作其它元素的办法解决),当案例执行到这一步时我手工把页面下拉使按钮显示出来,这时就不会有问题,于是我断定点击按钮操作时屏幕没有下拉,而RF操作时又必须要元素显示在屏幕内。随即我又开始研究Selenium2Library库,一个一个的看S2L库的关键字,发现了Foucs关键字,于是抱着试一试的心理在点击继续按钮前加上了这个Foucs关键字使焦点定位到按钮上,当执行到这一步时继续按钮出现在屏幕上,问题随之彻底解决,很是开心啊!!!

 

3、总结:

a)   首先,RF对于不在屏幕内的页面元素是可以识别的,RF定位到不在屏幕内的对象会自行下移屏幕。但是对于点击按钮操作,RF没有自行下移屏幕,所以无法进行操作,要想办法使元素能在屏幕中显示出来,focus关键字就很有用处了,因为它要定位焦点,而且会把屏幕下拉,这样一来不在屏幕内的元素就可以显示进行操作了。

b)  Execute Javascript 关键字: 这是S2L库中的一个关键字,可以用来执行JS脚本,我觉得这也可以解决上述问题,有时间在研究研究。

 

 本文转自贺满博客园博客,原文链接:http://www.cnblogs.com/puresoul/p/3394589.html,如需转载请自行联系原作者。

目录
相关文章
利用dump文件反向定位崩溃位置的体会
利用dump文件反向定位崩溃位置的体会
scrollIntoView()定位元素显示导致页面上移解决方法?
scrollIntoView()定位元素显示导致页面上移解决方法?
485 0
|
JavaScript
用nodejs实现向文件的固定位置插入内容
用nodejs实现向文件的固定位置插入内容
103 0
MPAndroidChart_并列柱状图,及如何实现点击隐藏掉不需要的条目。
在比赛中遇到了MP的并列柱状图,看网上对这方面记录并不是很多,所以今天就做一个教程吧。
186 0
MPAndroidChart_并列柱状图,及如何实现点击隐藏掉不需要的条目。
|
JavaScript 前端开发 索引
Cypress系列(17)- 查找页面元素的辅助方法
Cypress系列(17)- 查找页面元素的辅助方法
201 0
Cypress系列(17)- 查找页面元素的辅助方法
Mac系统快速获得文件位置的方法(带图解释)
Mac系统快速获得文件位置的方法(带图解释)
182 0
Mac系统快速获得文件位置的方法(带图解释)
Mac系统下的改变终端文件定位(带图讲解)
Mac系统下的改变终端文件定位(带图讲解)
254 0
Mac系统下的改变终端文件定位(带图讲解)
蓝色主机删除临时页面教程
对于大多数新手站长而言,购买主机后,在使用的过程中或多或少会遇到一些技术上的问题,例如不知如何删除临时页面,关于此问题,接下来BueHost主机指南为大家详细介绍BueHost主机如何删除临时页面,具体操作步骤如下: