robotframework+Selenium2Library 模态窗口的处理
所谓模态窗口,就是指除非采取有效的关闭手段,用户的鼠标焦点或者输入光标将一直停留在其上的对话框。(说白了,就是弹出了模态窗口之后,后面的窗口无法被点击)
这里有个demo页面
http://www.robotframework.net/ ... alogA
对于window.showModalDialog()模式打开的新窗口 Eg.点击“支付详情”的“详情”,出来一个新页面。如何定位呢?单纯的select window title=payDetail page 是定位不到新窗口的。解决办法如下:
在web自动化测试,可能时常会碰到,但是如果普通的操作(click button)来打开模态窗口
会导致RF卡住,运行不下去。所以必须使用异步的js来打开模态窗口
核心的代码就是 setTimeout(function(){document.getElementById("aa").click()},100)
具体的demo如下图
一般情况下这样就解决了。
有时候getElementById时,根本就找不到此元素的id,怎么办??
idea: 创建一个静态id,给标签分配一个id元素
把新的id给到getElementById,如下:
setTimeout(function(){document.getElementById("aa").click()},100)
继续发散思维一下: Click element xxx 换成 execute javascript document.getElementById('xxx').click() 基本换成javascript执行,都会轻松通过。如果元素没有ID的话,要用css定位的话,我用的jquery来执行。 Execute javascript $(“css”).click()。