使用 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');