2
我有一個非角度頁面,我需要點擊2個鏈接。點擊在新選項卡中自動打開的鏈接之一。現在我切換到新選項卡並設置browser.ignoreSynchronization = false
,因爲新打開的選項卡是一個角度窗口;並打電話給我的一個測試。一旦被驗證。我想關閉當前選項卡並返回到無角度頁面以單擊鏈接#2,該鏈接將再次在新選項卡中打開。我試過window.close
,但我得到的窗口是未定義的。我用browser.window,甚至沒有工作。請指教量角器關閉當前選項卡
element(by.id('trMyUrl'));
browser.getAllWindowHandles().then(function (handles) {
var secondWindowHandle = handles[1];
var firstWindowHandle = handles[0];
browser.switchTo().window(secondWindowHandle).then(function() { //the focus moves on new tab\
browser.ignoreSynchronization = false;
empLogin.test();
window(secondWindowHandle).close()
// window.close()
// browser.close()
// browser.window.close()
})
});
您的代碼正在關閉當前選項卡,但它會關閉而不執行empLogin.test()的測試。當我註釋掉第一個句柄代碼並保持browser.close代碼不變,然後運行我的測試時,我沒有這樣的窗口退出,目標窗口已關閉消息。請指教。 – user2744620
您正在解決這個問題,因爲即使在'empLogin.test()'完成之前'browser.close()'正在執行。爲了解決這個問題,可以嘗試從'empLogin.test()'返回一個承諾,然後使用該承諾來添加你的'browser.close()'函數。或者鏈接我在答案中更新的承諾。你也需要切換到firstWindowHandle作爲量角器不知道它應該在哪裏執行測試。謝謝 –
非常感謝..它的工作。 :) – user2744620