testing - Protractor.explore() 和 .pause() 以及 .enterRepl() 遇到 TypeError

标签 testing protractor

当我使用其中之一运行 Protractor 测试时:

await browser.enterRepl();
await browser.pause();
await browser.debugger();

遇到以下错误:

TypeError: doneDeferred.fulfill is not a function
TypeError: doneDeferred.fulfill is not a function
    at Socket.tester.once (C:\TSO-IP\tso-ip-ui\node_modules\protractor\built\debugger.js:212:34)
    at Object.onceWrapper (events.js:273:13)
    at Socket.emit (events.js:182:13)
    at Socket.EventEmitter.emit (domain.js:442:20)
    at TCP._handle.close (net.js:606:12)

我还没有发现有人报告这样的问题。

import 'jasmine';
import {browser} from 'protractor';
import {LoginPo} from '../login.po';
import {Process_adminPo} from "./process_admin.po";

describe ('Capacity register tests', () => {

let loginPage: LoginPo;
let process_adminPo: Process_adminPo;


beforeAll (async (done:DoneFn) => {
    loginPage = new LoginPo ();
    await loginPage.openApplication ();
    await loginPage.changeLanguage ();
    done();
});

beforeEach (async (done:DoneFn) => {
    process_adminPo = new Process_adminPo ();
    done();
});

it ('Add a new nomination group', async () => {
    await process_adminPo.open ();
    await browser.explore();
    //await browser.enterRepl();
    //await browser.pause();
    //await browser.debugger();
    await browser.sleep (5000);
    await process_adminPo.clickOnNewButton ();
}

我希望进入交互式 shell (REPL) 模式以更好地处理定位元素

最佳答案

请尽量不要使用browser.repl()browser.explore()browser.debugger()。这些方法需要控制流;但是,由于您使用的是async/await(这很棒),这意味着您没有使用控制流,并且这些方法将不起作用。

这些都将消失,因为 selenium-webdriver 不再使用控制流。 Protractor 用于拦截控制流并设置神奇的断点。

您也应该使用node --inspect-brk ./node_modules/.bin/protractor参见youtu.be/6aPfHrSl0Qk?t=985示例视频。

关于testing - Protractor.explore() 和 .pause() 以及 .enterRepl() 遇到 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54441683/

相关文章:

java - 在 Spring 测试中插入后回滚

unit-testing - 涉及随机数的单元测试算法

java - 如何仅在 x :th call? 上返回模拟项目

symfony - 在 Behat 功能文件中测试文件上传到表单

testing - 从用户故事到测试的 TFS(敏捷)工作项

angularjs - 如何点击 angular-ui 日期选择器弹出窗口 Today 按钮?

angularjs - 从 Protractor 测试编排非 JavaScript 后端

javascript - Protractor + CucumberJS + Gulp-Protractor = 当测试失败时浏览器不会关闭

angularjs - Protractor 使用的输出插件

javascript - 在 Protractor 中定义页面对象的规范方法