Nightmare.js 介绍和安装
Nightmare是一个由段提供的高级自动化库。它是烟雾测试自动化的一个很好的选择,因为它可以执行所有的文字输入、点击和视觉检查,而人可以。它作为一个使用Electron的无头浏览器运行。在这篇文章中,我们将详细讨论Nightmare.js以及Nightmare.js的安装。
Nightmare.js简介
Segment提供了Nightmare,一个复杂的浏览器自动化库。这个Nightmare的目的是模仿用户的活动(如goto、type、click等),而不是使用大量嵌套的回调,以一个API暴露一些基本的方法,让每个脚本块感觉是同步的。虽然它的目的是在没有API的网站上实现自动化操作,但今天它最常被用于抓取、UI测试等。
注意 - 运行Nightmare需要NodeJS 4.x或以上版本。
Nightmare.js的安装
为了测试网站界面,我们尝试使用Nightmare.js,一个JavaScript浏览器自动化库。
在PC上使用Nightmare比在Cloud 9上这样做更直接。以下是设置和启动说明。
第1步 下载Node.js
JavaScript通常在浏览器中操作。Node.js是JavaScript的一种变体,可以在服务器上、终端上或其他硬件上使用。它能够简单地创建和执行 “噩梦 “脚本。
下载Node.js的链接
https://nodejs.org/en/download/
第2步 下载NPM
你可以使用Node Package Manager(npm)来设置Nightmare库。当你使用npm安装时,Nightmare的依赖项将全部被安装,与它一起。
安装NPM的链接
https://nodejs.org/en/
第3步 安装Nightmare.js库
使用命令
npm install nightmare
我们已经看到了如何在node js操场上安装nightmare.js库,现在让我们来看看nightmare的一些基本知识,然后我们将转向nightmare的对象。
噩梦的基本语法是 —
const Nightmare = require('nightmare')
const nightmare = Nightmare({object : value_of_object})
在上面的代码中,我们使用node js的require()方法将’nightmare’导入我们的代码中,然后我们将它存储到一个变量中,随后我们用它来定义一些对象,并在存储变量的括号中为其取值,然后再次将其存储到一个新的变量。
我们已经看到了Nightmare.js的一些基本代码结构,现在让我们来看看Nightmare.js的对象。
Nightmare.js的对象
由于Nightmare.js创建了一个新的对象,通过网络导航并提供有用的东西,为了增加一些规格,这里我们有噩梦的对象,将帮助我们获得更好的网上冲浪,让我们看看其中的一些对象 –
watiTimeout
这个对象的默认时间是30秒,用户也可以根据需要定义一些时间,如果函数” .wati() “未能在设定的时间范围内返回一个真值,则抛出一个异常。
const Nightmare = require('nightmare')
const nightmare = Nightmare({
waitTimeout: 2000 // in milliseconds
})
在上面的代码中,首先,我们将噩梦导入我们的系统,然后我们为它创建了一个对象。在这个变量中,我们提供了对象 “waitTimeout”,其值为2000毫秒。
gotoTimeout
这个对象的默认时间是30秒,用户也可以根据需要定义一些时间,如果函数” .goto() “未能在提供的或设定的时间范围内加载,则抛出一个异常。
const Nightmare = require('nightmare')
const nightmare = Nightmare({
gotoTimeout: 2000 // in milliseconds
})
在上面的代码中,首先,我们将噩梦导入我们的系统,然后我们为它创建一个对象。在这个变量中,我们提供了对象 “gotoTimeout”,其值为2000毫秒。
loadTimeout
这个对象的默认时间是无限秒,用户也可以根据需要定义一些时间,如果由于点击等动作导致的页面转换没有在给定的时间内完成,则迫使Nightmare离开或移动。
const Nightmare = require('nightmare')
const nightmare = Nightmare({
loadTimeout: 2000 // in milliseconds
})
在上面的代码中,首先,我们将噩梦导入我们的系统,然后我们为它创建一个对象。在这个变量中,我们提供了对象 “loadTimeout”,其值为2000毫秒。
ExecutionTimeout
这个对象的默认时间是30秒,用户也可以根据需要定义一些时间,并显示等待方法’.evaluation’的语句完成的最大时间。
const Nightmare = require('nightmare')
const nightmare = Nightmare({
executionTimeout: 2000 // in milliseconds
})
在上面的代码中,首先,我们将噩梦导入我们的系统,然后我们为它创建了一个对象。在这个变量中,我们提供了对象’exectutionTimeout’,其值为2000毫秒。
路径
有许多默认的系统路径被定义,这些路径是电子所知道的。这些路径可以通过使用梦魇的路径对象来覆盖,这可以通过以下代码完成 −
const Nightmare = require('nightmare')
const nightmare = Nightmare({
paths: {
userData: ‘/user/data’
}
})
在上面的代码中,首先,我们将噩梦导入我们的系统,然后我们为它创建一个对象。在这个变量中,我们提供了对象的路径,其中我们定义了一个电子的路径。
electronPath
这些对于测试不同版本的电子相当有帮助,这些是预置在电子二进制中的路径。这些路径可以通过使用梦魇的路径对象进行覆盖。让我们看看electronpath是如何定义的代码 −
const Nightmare = require('nightmare')
const nightmare = Nightmare({
electronPath: require('electron')
})
在上面的代码中,首先,我们将噩梦导入我们的系统,然后我们为它创建一个对象。在变量中,我们提供了对象electronPath,其键值将使用所需的关键字导入。
开关
Electron也支持google命令行所支持的开关。有各种开关都属于这个类别。让我们转到代码中,以获得关于如何在nightmare.js对象中使用开关对象的信息 –
const Nightmare = require('nightmare')
const nightmare = Nightmare({
switches: {
'key1' : 'value1',
'key2' : 'value2',
}
})
在上面的代码中,首先,我们将噩梦导入我们的系统,然后我们为它创建一个对象。在这个变量中,我们提供了对象的开关,并且在其中,我们定义了两个键值对。
总结
在这篇文章中,我们已经详细了解了Nightmare.js和Nightmare.js的安装。Nightmare是一个由段提供的高级自动化库。它是烟雾测试自动化的一个很好的选择,因为它可以执行所有的文字输入、点击和视觉检查,而人可以。它作为一个使用Electron的无头浏览器运行。