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