温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

通过添加user-extension.js解决selenium-IDE中的回车和blank问题

发布时间:2020-06-23 16:39:27 来源:网络 阅读:1211 作者:aiven86 栏目:软件技术

通过添加user-extension.js解决录制回车问题


1. 编写user-extension.js(文件名可以随便取),录制回车的js代码如下:

Recorder.removeEventHandler('keyDown');

Recorder.addEventHandler('keyDown', 'keydown', function(event) {

var keynum;

if(window.event) // IE

{

keynum = event.keyCode

}

else if(event.which) // Netscape/Firefox/Opera

{

keynum = event.which

}

if(keynum==13){

var _this = this;

var target = _this.findLocator(event.target);

setTimeout(function(){_this.record('keyDown', target,'\\'+keynum); },1000);//延迟1000ms再写入回车记录

}

}, { capture: true });

2. 添加脚本到IDE中(option-IDE extensions):

3. 脚本将keydown事件绑定到Selenium系统命令keyDown,并判断按键是否为13(回车),如果是就在IDE中写入一条命令,写入命令使用this.record('keyDown', this.findLocator(event.target),'\\'+keynum);,其中第一个参数是IDE中的Command列,第二个参数为Target列,第三个参数为Value列。{ capture: true }表示录制。

4. 系统命令:在command中可以查到。

5. 其他:可在火狐浏览器中输入地址:

chrome://selenium-ide/content/recorder-handlers.js查看click的系统事件。


通过添加user-extension.js解决blank跳转问题


1. 问题描述:

在使用Selenium-IDE录制时,如果录制页面有新开页,回放脚本的时候会报警告<a href="xxx.jsp" target="_blank">,并且会在新窗口打开页面,但由于无法判断新窗口的id,所以无法继续执行脚本中的其他命令。

2. 解决思路:

将原先的click命令替换成open并将href中的值取出付给opentarget。这样可保证在本页面打卡,并可正常执行剩下的脚本命令。

3. 脚本代码:将如下代码写入user-extension.js中,并添加到

option-IDE extensions

Recorder.removeEventHandler('clickLocator');

Recorder.addEventHandler('clickLocator', 'click', function(event) {

if (event.button == 0) {

var clickable = this.findClickableElement(event.target);

var href = event.target.getAttribute("href");//event.target是html标签对象

var blank = event.target.getAttribute("target");

if (clickable) {

if (this.mouseoverLocator) {

this.record('mouseOver', this.mouseoverLocator, '');

delete this.mouseoverLocator;

}

if(blank!=null&&blank.indexOf("blank")>=0){

this.record("waitForElementPresent", this.findLocators(event.target), '');//等待元素加载完成

this.record("open", href, '');

}

else{

this.record("click", this.findLocators(event.target), '');

}

} else {

var target = event.target;

if(blank!=null&&blank.indexOf("blank")>=0){

this.record("waitForElementPresent", this.findLocators(event.target), '');

this.record("open", href, '');

}

else{

this.callIfMeaningfulEvent(function() {

this.record("click", this.findLocators(target), '');

});

}

}

}

}, { capture: true });

注意:回放时为保证脚本正确执行,最好将回放速度调整为slow,否则页面若未加载完成,可能导致有些命令执行失败。




向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI