測試當中時常會有需要先儲存後檢查的動作,如此就要先開好兩個視窗,不管是新分頁或新視窗,一個作為編輯頁面,一個則作為檢查頁面。如果是每編輯一個地方就需要檢查,最方便快速就是有兩個視窗來回切換檢查。
openWindow()
其實 Nightwatch 中並沒有可以直接開新視窗或新分頁的方式,可是我們可以利用原生的 Javascript 建立:
window.open(strUrl, strWindowName, [strWindowFeatures]);
舉例而言,如果要在新分頁中開啟 google search
window.open('https://www.google.com/', '_blank');
新視窗則是
window.open('https://www.google.com/', null, 'height=1024, width=768');
後面的 height, width 為視窗大小
透過 Nightwatch 的 execute 方式執行則會變成:
.execute(
function(newWindow) {
window.open(newWindow, null, 'height=1024,width=768');
},
[url],
);
當然也可以包成客製化指令:
module.exports = {
command: async function(url) {
this.execute(
function(newWindow) {
window.open(newWindow, null, 'height=1024,width=768');
},
[url],
);
},
};
如此一來,我們就可以先開啟視窗 -> 切換視窗的方式驗證了~
browser.openWindow(testURL)
browser.windowHandles(function(result) {
browser.switchWindow(result.value[1]);
// Verify
browser.switchWindow(result.value[0]);
}