您好,登錄后才能下訂單哦!
通過添加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中的值取出付給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,否則頁面若未加載完成,可能導致有些命令執行失敗。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。