自從我綜合我的腳本詹金斯,量角器 - 有時測試用例包括窗口處理是失敗的「沒有這樣的窗口」
有時我的測試用例一部分包括switchTo().window(handles[0])
都失敗了。
我試圖增加更多等待或睡眠之前和之後的行動,但它不會讓我的測試用例穩定。
錯誤:
[31mFatal error: 11:03:56.527 WARN - Exception thrown org.openqa.selenium.NoSuchWindowException: no such window
測試案例,例如:
it('Settings - Redirect to links - FAQ', function() {
element.all(by.css("a.faq-link")).first();
browser.wait(EC.elementToBeClickable(element(by.xpath('//*[@id="main"]/div[2]/div/a'))), 30000);
browser.driver.sleep(1000);
element(by.xpath('//*[@id="main"]/div[2]/div/a')).click();
var mainWindow;
browser.driver.getAllWindowHandles().then(
function(handles) {
mainWindow = handles[0]; //at this point there should be only 1 window
}
);
browser.driver.getAllWindowHandles().then(function (handles) {
handles.forEach(function(handle) {
if (handle !== mainWindow) {
browser.driver.switchTo().window(handle);
browser.driver.sleep(3000);
expect(browser.driver.getCurrentUrl()).toContain("some url address");
}
});
});
});
it(Settings - Staff', function() {
element.all(by.css('[ng-click="start_create()"]')).first();
browser.driver.getAllWindowHandles().then(function (handles) {
browser.driver.close();
browser.driver.switchTo().window(handles[0]);
browser.driver.sleep(3000);
});
//-=- switch to iFrame handler -=-
browser.driver.switchTo().defaultContent(); // you are now outside both frames
browser.driver.switchTo().frame("timegate_iframe");
element(by.css("a.staff.section-item")).click();
browser.driver.sleep(1000);
browser.wait(EC.visibilityOf(element(by.css('[ng-click="start_create()"]'))), 30000);
});
能否請你解釋一下我的JS?我不明白這個的語法..謝謝 –
看到我的答案在下面。這是一個蹩腳的翻譯(我不是JS專家),但它有相同的邏輯 – GonTs