使用 browser.debugger()

你可以使用 browser.debugger() 来停止执行。你可以在代码中的任何位置插入它,它将在该行之后停止执行,直到你不命令继续。

注意:要在调试器模式下运行测试,你必须发出如下命令:

    `protractor debug <configuration.file.js>` 

输入 c 开始执行并在断点后继续或输入 next 命令。下一个命令将进入控制流程的下一行。

Protractor 中使用的调试器使用节点调试器 ,它以异步方式暂停执行。例如,在下面的代码中,browser.debugger() 将在执行 username.sendKeys('username') 时被调用。

注意: 由于这些是异步任务,你必须增加规范的默认超时,否则将抛出默认超时异常!

it('should pause when we use pause method', function () {
browser.get('/index.html');

var username = element(by.model('username'));
username.sendKeys('username');
browser.debugger();

var password = element(by.model('password'));
password.sendKeys('password');
});

可以输入命令进入 repl 模式 -

debug > repl
> element(by.model('abc')).sendKeys('xyz');

这将运行 sendKeys 命令作为下一个任务,然后重新进入调试器。

可以通过将端口传递给调试器方法来改变他们想要调试脚本的 Port no.-

browser.debugger(4545); //will start the debugger in port 4545

debugger() 方法将 Protractor 的客户端注入到浏览器中,你可以在浏览器控制台中运行一些命令来获取元素。使用客户端脚本的示例之一是:

window.clientSideScripts.findInputs('username');