Nightmare.js介绍和安装

Nightmare.js介绍和安装

Nightmare是由segment提供的高级自动化库。它是烟雾测试自动化的很好选择,因为它可以执行所有的文本输入、点击和视觉检查,就像人一样。它使用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浏览器自动化库。

在个人电脑上使用Nightmare比在Cloud 9上更简单。下面是设置和启动的指导。

步骤1 下载Node.js

JavaScript通常在浏览器中运行。Node.js是JavaScript的一个变种,可以用于服务器、终端或其他硬件。它可以简单地创建和执行Nightmare脚本。

下载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 playground中安装nightmare.js库,现在让我们来看一些nightmare的基础知识,然后我们再来看看nightmare的对象。

nightmare的基本语法是−

const Nightmare = require('nightmare')
const nightmare = Nightmare({object : value_of_object})  

在上面的代码中,我们使用节点js的require()方法导入了‘nightmare’,然后将其存储在一个变量中,我们随后使用该变量来定义一些对象和值,并将其再次存储在一个新变量中。

现在我们已经看到了nightmare.js的一些基本代码结构,现在让我们转向Nightmare.js的对象

Nightmare.js的对象

nightmare.js创建了一个新的对象,通过网络导航并提供有用的信息,为了增加一些更详细的规范,我们有了一些nightmare的对象,这些对象将帮助我们更好地浏览网页,让我们看一些示例

watiTimeout

该对象默认时间为30秒,用户也可以根据需要定义一些时间,并在设置的时间范围内未能返回true值时抛出异常。

const Nightmare = require('nightmare')
const nightmare = Nightmare({
   waitTimeout: 2000 // in milliseconds
}) 

在上面的代码中,首先,我们将Nightmare引入到我们的系统中,然后创建了一个对象。在变量中,我们为对象’waitTimeout’提供了它的值,即2000毫秒。

gotoTimeout

这个对象默认的时间是30秒,用户还可以根据需要定义一些时间,并在函数“ .goto() ”在提供的或设置的时间范围内无法加载时抛出异常。

const Nightmare = require('nightmare')
const nightmare = Nightmare({
   gotoTimeout: 2000 // in milliseconds
})

在上面的代码中,首先,我们将nightmare引入到我们的系统中,然后创建了一个对象。在变量中,我们提供了对象’gotoTimeout’及其值为2000毫秒。

loadTimeout

这个对象默认的时间是无限秒,用户也可以根据需要定义一些时间,并强制Nightmare在页面的转换(如点击等操作)在给定的时间内未完成时离开或移动。

const Nightmare = require('nightmare')
const nightmare = Nightmare({
   loadTimeout: 2000 // in milliseconds
})

在上面的代码中,首先我们将nightmare引入了我们的系统,然后我们为它创建了一个对象。在变量中,我们提供了对象’loadTimeout’的值为2000毫秒。

executionTimeout

这个对象默认的时间是30秒,用户也可以根据需要定义一些时间,并显示等待方法’.evaluate’完成的最长时间。

const Nightmare = require('nightmare')
const nightmare = Nightmare({
   executionTimeout: 2000 // in milliseconds
})

在以上代码中,首先,我们将nightmare引入了我们的系统,然后创建了一个对象。在变量中,我们为对象’exectutionTimeout’提供了它的值为2000毫秒。

paths

定义了许多默认的系统路径,这些路径是electron所知道的。可以使用nightmare的path对象覆盖这些路径,具体操作如下:

const Nightmare = require('nightmare')
const nightmare = Nightmare({
   paths: {
      userData: ‘/user/data’
   }
})

在上面的代码中,首先我们把nightmare导入到我们的系统中,然后创建了一个对象。在变量中,我们提供了对象的路径,在其中定义了一个electron的路径。

electronPath

这对于测试不同版本的Electron非常有用,它们是预先构建好的electron二进制文件的路径。可以使用nightmare的path对象覆盖这些路径。让我们看一下electronpath如何定义的代码。

const Nightmare = require('nightmare')
const nightmare = Nightmare({
   electronPath: require('electron')
})

在上面的代码中,首先我们将nightmare引入到我们的系统中,然后创建了一个对象。在变量中,我们提供了electronPath对象,它的键值将使用required关键字进行导入。

switches

Electron也支持google命令行支持的开关。在这个类别中有各种开关。让我们看一下代码,了解如何在nightmare.js对象中使用开关对象的信息 –

const Nightmare = require('nightmare')
const nightmare = Nightmare({
   switches: {
      'key1' : 'value1',
      'key2' : 'value2',
   }
})

在上面的代码中,首先我们导入了nightmare到我们的系统中,然后我们创建了一个对象。在变量中,我们为对象提供了开关,并在其中定义了两个键值对。

结论

在本文中,我们详细介绍了Nightmare.js和Nightmare.js的安装。Nightmare是由Segment提供的高级自动化库。它是一个很好的烟雾测试自动化选项,因为它可以执行所有文本输入、点击和视觉检查,就像一个人一样。它作为使用Electron的无头浏览器运行。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程