在Protractor中创建了一个跑步者,但在通过第一次测试后出错了



这是我的规范:

import {DotComPage} from "../../../pages/web/dotComPage";
import {browser, element, by, $, $$, ProtractorExpectedConditions, ElementFinder, protractor, } from "protractor";
import {HkZhMarket} from "./HkZhMarket.e2e-spec";
import {AuZhMarket} from "./AuZhMarket.e2e-spec";
export function AuEnMarket() {
describe("Australia English", () => {
const dotComPage = new DotComPage();
const EC = protractor.ExpectedConditions;
browser.waitForAngularEnabled(false)
it('Clicks on the market Australia and language English', async () => {
dotComPage.get();
browser.wait(protractor.ExpectedConditions.visibilityOf(dotComPage.firstTimeVisitorButton))
dotComPage.firstTimeVisitorButton.click();
browser.waitForAngular();
browser.wait(EC.presenceOf($('.optanon-alert-box-wrapper[style="bottom: 0px;"]')), 5000);
browser.wait(EC.elementToBeClickable(dotComPage.acceptCookiesButton), 5000);
dotComPage.acceptCookiesButton.click();
dotComPage.usFlagButton.click();
browser.wait(protractor.ExpectedConditions.visibilityOf(dotComPage.auMarketButton), 5000)
dotComPage.auMarketButton.click();
dotComPage.auFlagButtonEnglish.click();
browser.wait(EC.urlContains('enu-AU'));
});
});
}

这是我创建的测试运行程序,它提取了我在测试中包装的函数:

import {AuEnMarket} from "..//FlagMarketLanguage/AuEnMarket.e2e-spec";
import {AuZhMarket} from "../FlagMarketLanguage/AuZhMarket.e2e-spec";

describe ('FlagMarketLanguageTests',  async ()=> {
AuEnMarket()
AuZhMarket()
})

当我运行FlagMarketlanguageTest时,第一个测试总是通过,但浏览器不会关闭。第二次测试(我还有更多没有发布的测试(总是失败。我得到的错误是:

失败:此驱动程序实例没有有效的会话ID(您是否调用了WebDriver.quit((?(并且可以不再使用。

Jasmine规格超时。正在重置WebDriver控制流。

失败:会话id 无效

只需在导出文件中编写规范即可。不必以方法格式导出。

import {DotComPage} from "../../../pages/web/dotComPage";
import {browser, element, by, $, $$, ProtractorExpectedConditions, ElementFinder, protractor, } from "protractor";
import {HkZhMarket} from "./HkZhMarket.e2e-spec";
import {AuZhMarket} from "./AuZhMarket.e2e-spec";

describe("Australia English", () => {
const dotComPage = new DotComPage();
const EC = protractor.ExpectedConditions;
browser.waitForAngularEnabled(false)
it('Clicks on the market Australia and language English', async () => {
dotComPage.get();
browser.wait(protractor.ExpectedConditions.visibilityOf(dotComPage.firstTimeVisitorButton))
dotComPage.firstTimeVisitorButton.click();
browser.waitForAngular();
browser.wait(EC.presenceOf($('.optanon-alert-box-wrapper[style="bottom: 0px;"]')), 5000);
browser.wait(EC.elementToBeClickable(dotComPage.acceptCookiesButton), 5000);
dotComPage.acceptCookiesButton.click();
dotComPage.usFlagButton.click();
browser.wait(protractor.ExpectedConditions.visibilityOf(dotComPage.auMarketButton), 5000)
dotComPage.auMarketButton.click();
dotComPage.auFlagButtonEnglish.click();
browser.wait(EC.urlContains('enu-AU'));
});
});

在主规范中,只需要文件并在第二次加载之前将其从缓存中删除。

describe ('FlagMarketLanguageTests',  async ()=> {
require('../FlagMarketLanguage/AuZhMarket.e2e-spec');
let resolved = require.resolve('../FlagMarketLanguage/AuZhMarket.e2e-spec');
delete require.cache[resolved];
require('../FlagMarketLanguage/AuZhMarket.e2e-spec');
})

最新更新