千家信息网

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

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,通过添加user-extension.js解决录制回车问题1. 编写user-extension.js(文件名可以随便取),录制回车的js代码如下:Recorder.removeEventHandle
千家信息网最后更新 2026年11月02日通过添加user-extension.js解决selenium-IDE中的回车和blank问题

通过添加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录制时,如果录制页面有新开页,回放脚本的时候会报警告,并且会在新窗口打开页面,但由于无法判断新窗口的id,所以无法继续执行脚本中的其他命令。

2. 解决思路:

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

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,否则页面若未加载完成,可能导致有些命令执行失败。




命令 脚本 页面 问题 代码 参数 系统 事件 保证 三个 元素 可在 地址 对象 思路 按键 文件 文件名 时候 最好 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会副主任毛军 互联网科技会 齐家互联网科技 上海致骋互联网科技 亿人帮互联网科技 四川狮子座互联网科技 居家互联网科技有限公司 四个字互联网科技公司取名 新华互联网科技校企合作 互联网科技创新企业排名 广州慧亚互联网科技怎么样 上海宁丞科技互联网 互联网科技商业 苏州铭阳互联网科技有限公司 互联网行业科技股 科技互联网的核心竞争力 福州德业互联网科技 重庆科技产业互联网有哪些 互联网高科技绘画 互联网企业和网络科技有限公司 科技企业和互联网企业 中国互联网科技发展 北京禾田雨橡互联网科技 互联网科技公司需要的职位 深圳国际航运科技和互联网 开一家科技互联网公司需要多少钱 四川慕妮娅互联网科技有限公司 无锡工业互联网科技有限公司 广州有谷有贝互联网科技有限公司 长沙易易互联网科技有限公司
0