ale*_*cxe 23 javascript selenium angularjs selenium-webdriver protractor
在量角器中,有以下browser.pause()
功能:
pause
用于调试webdriver测试的Beta(不稳定)函数.在测试中使用browser.pause()从控制流中的那一点进入量角器调试器.
element(by.id('foo')).click();
browser.pause();
// Execution will stop before the next click action.
element(by.id('bar')).click();
Run Code Online (Sandbox Code Playgroud)
而且,还有一个鲜为人知的 - browser.enterRepl()
:
Beta(不稳定)
enterRepl
函数,用于从控制流中的任何点进入repl循环.在测试中使用browser.enterRepl().不需要更改命令行(无需添加'debug').
element(by.id('foo')).click();
browser.enterRepl();
// Execution will stop before the next click action.
element(by.id('bar')).click();
Run Code Online (Sandbox Code Playgroud)
从提供的文档和示例中可以清楚地看出它们都用于调试测试.但是,目前尚不清楚,两者之间有什么区别.
我们何时应该使用pause()
何时enterRepl()
?
Mic*_*nov 34
它在一般的文档中有解释,但我会试着深入一点.
Protractor有两种调试模式:DebuggerRepl和CommandRepl.
这里的Repl代表Read-eval-print-loop,这通常意味着无论您键入什么命令,它都会立即在当前上下文中进行评估,并立即为您提供结果.例如,在控制台Chrome开发者工具是有点儿REPL对于Chrome的执行的JavaScript/DOM,或当您运行node
在终端,你会得到一个REPL对Node.js的的JavaScript方面-你可以输入命令并得到结果.
使用时,browser.pause()
您正在激活DebuggerRepl.它为您提供了一个Repl,您可以在其中执行此模式的命令.您通常会在终端中看到此命令列表:
press c to continue to the next webdriver command
press d to continue to the next debugger statement
type "repl" to enter interactive mode
type "exit" to break out of interactive mode
press ^C to exit
Run Code Online (Sandbox Code Playgroud)
因此,您可以使用c
命令转到下一个WebDriver命令,或者使用命令跳转到browser.pause()
测试中的下一个语句d
.它们会在您使用时立即执行.因此,此模式基本上允许您跳过页面状态并探索结果.(注意:此模式提供了更多命令 ;它们确实有效,但我不确定它们的输出含义是什么,以及它们对Protractor用户是否有用.)
使用时,browser.enterRepl()
您正在激活CommandRepl模式.它允许您使用您将在测试中使用的Protractor方法,但是在交互模式下.您可以访问element
,browser
和protractor
对象,所以你可以运行,例如:
> $('.hello').getText();
> 'World'
Run Code Online (Sandbox Code Playgroud)
它会立即打印出结果,因此它是一个沙盒,您可以在其中查询当前页面状态的DOM 并查看结果.
您可能已经注意到,browser.pause()
命令列表有一行:
type "repl" to enter interactive mode
Run Code Online (Sandbox Code Playgroud)
这意味着当您处于DebuggerRepl模式时,您可以执行repl
命令以激活您刚刚运行的当前页面状态的CommandRepl模式,这样您就可以像使用刚才那样使用DOM .您可以使用该命令返回DebuggerRepl模式.但是如果您使用了进入CommandRepl模式,则无法切换到DebuggerRepl模式.browser.pause()
browser.enterRepl()
exit
browser.enterRepl()
此外,可以使用名为elementExplorer的功能激活CommandRepl模式.它可以在没有任何笔试的情况下使用; 它只是在CommandRepl模式下打开一个URL .
TL;博士
总而言之,我相信它们应该根据它们的调用方式使用.
browser.pause()
- 我希望浏览器在那个地方完全停顿,这样我就可以看到页面上发生了什么.然后,根据我的命令,我希望它跳转到下一个状态,这样我就可以看到这里发生了什么.如果我需要更多的信息,目前的状态,我可以运行repl
,并使用量角器API(browser
,element
,protractor
)进行调查.我可以然后exit
这种模式继续跳过状态.
browser.enterRepl()
-我想浏览器在那个地方正好暂停,让我调查使用页面量角器API(browser
,element
,protractor
)向右走,我也不需要能够在页面的状态之间跳跃.
归档时间: |
|
查看次数: |
14864 次 |
最近记录: |