我刚刚了解了nighwatchjs,并尝试了解编写测试的框架。在这些示例中,我可以注意到使用变量浏览器的api-我无法在其上找到有关API参考或任何外部文档的更多信息。
我想我了解页面对象设计模式的概念,并且在使用选择器等方面经验丰富。
但是我想了解更多有关所使用的浏览器对象的信息,因为它使我感到困惑,实际上是怎么回事:
考虑以下示例:
this.demoTestGoogle = function (browser) {
browser
.url('http://www.google.com')
.waitForElementVisible('body', 1000)
.setValue('input[type=text]', 'nightwatch')
.waitForElementVisible('button[name=btnG]', 1000)
.click('button[name=btnG]')
.pause(1000)
.assert.containsText('#main', 'The Night Watch')
.end();
};
我可以理解,它使用google url,将等待1000毫秒使body标签可见,输入夜视值,等待,单击按钮,暂停执行某项操作并进行断言。但是浏览器变量对我来说还是很匿名的-我该怎么办呢?
关于守夜人文档-https: //github.com/nightwatchjs/nightwatch/wiki/Understanding-the-Command-Queue
这是用法定义,
Nightwatch运行测试时,它将在称为命令队列的列表中处理其命令。该列表管理该测试中定义的命令的异步执行。
作为队列,命令队列通常遵循先进先出(FIFO)的规则。在测试中调用的第一个命令是在测试运行时首先执行的命令。第二个命令称为下一个,其次是下一个命令,直到添加的最后一个命令为止,这成为最后执行的命令。
The command API in Nightwatch - accessible via the object passed into test cases, usually called "client" or "browser" - consists of a collection of methods that are used to construct the command queue.
当您调用Nightclick命令(例如click())时,您没有向Selenium客户端发送命令以立即单击某些东西,至少不是立即单击。该方法改为将“ click”命令添加到命令队列。测试用例函数解析后,它会同步执行某些操作(命令是非阻塞的),它会遍历您调用的Nightwatch命令所定义的命令队列,并在其中异步执行每个命令。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句