我正在使用Selenium和Firefox .
我在页面上有一个链接(比如linkA),它在新标签页中打开一个新页面 . 单击linkA时会显示新选项卡 . 然后我想与新页面进行交互 .
这是我的selenium脚本:
-
点击链接A.
-
暂停5000
-
selectWindow Headers
-
单击linkB(注意:linkB在新页面上)
Selenium无法识别新标签 . 它报告:
[warn] Link的目标是'_blank',Selenium不支持!将目标随机化为:selenium_blank24003
有没有办法告诉Selenium与显示的标签进行交互?
7 回答
您是否尝试在selectWindow和clickB之间添加windowFocus?
编辑:selectWindow采用Javascript windowID . 您的linkA是否指定了Selenium要访问的windowID?
这是完整的第一个测试页面(t1.html),在window.open中调用第二个参数是'WindowTest',这是selenium寻找的javascript windowID .
这是第二个测试页面(t2.html):
运行脚本最终会在t1.html我的脚本上弹出窗口
你好试试这个......
它对我有用 .
以下是我为Selenium IDE采取的步骤:
找到有问题的链接
从链接中删除属性“target”
复制变量中的href目标(myUrl)
修改链接href-> javascript:window.open(myUrl,'myWindow')
点击链接
选择窗口'myWindow'
getEval | this.page() . findElement('link = click here') . removeAttribute('target')||
storeEval | this.page() . findElement('link = click here') . href | myUrl
getEval | this.page() . findElement('link = click here') . href =“javascript:window.open('$ ','myWindow')”||
点击| link =点击这里||
暂停| 1000 ||
selectWindow | name = myWindow ||
lericain59给了我正确的方向,虽然我不得不做一些改变,因为它与我的版本的selenium的IDE(我正在运行1.0.6)一起工作 . 此外,为了我的目的,我不需要验证它在一个单独的窗口中打开,只是它打开了正确的窗口 .
这是适合我的脚本 .
storeEval | this.browserbot.findElement('link=click here').href | myUrl |
打开| $ ||
this.page()没有用 . 它似乎已被this.browserbot取代 . 此外,我只是直接打开页面 - 它避免了手动暂停和较少的步骤 .
只需使用此代码即可 .