为什么 nightmare.js 示例不起作用?
Why are the nightmare.js examples not working?
var Nightmare = require('nightmare');
var expect = require('chai').expect; // jshint ignore:line
describe('test yahoo search results', function() {
it('should find the nightmare github link first', function*() {
var nightmare = Nightmare()
var breadcrumb = yield nightmare
.goto('http://yahoo.com')
.type('input[title="Search"]', 'github nightmare')
.click('.searchsubmit')
.wait('.url.breadcrumb')
.evaluate(function () {
return document.querySelector('.url.breadcrumb').innerText;
});
expect(breadcrumb).to.equal('github.com');
});
});
为什么这个测试总是评估为真?
即使我更改比较值,此测试的计算结果仍为真。如果我在 expect 之前添加一个 console.log,它不会打印,这让我觉得测试永远不会被评估并且 chai 的空响应为真。我是运行ning node v4.2.2,最新版nightmare和expect。我 运行 使用 mocha index.js(此文件的名称)从终端进行测试。
function*
和 yield
是一个名为 Generators.
的 ES2015 特性
README 中的示例后有一个附加注释:
Please note that the examples are using the mocha-generators package for Mocha, which enables the support for generators.
因此您需要安装包并将其添加到您的代码中:
require('mocha-generators').install();
var Nightmare = require('nightmare');
var expect = require('chai').expect; // jshint ignore:line
describe('test yahoo search results', function() {
it('should find the nightmare github link first', function*() {
var nightmare = Nightmare()
var breadcrumb = yield nightmare
.goto('http://yahoo.com')
.type('input[title="Search"]', 'github nightmare')
.click('.searchsubmit')
.wait('.url.breadcrumb')
.evaluate(function () {
return document.querySelector('.url.breadcrumb').innerText;
});
expect(breadcrumb).to.equal('github.com');
});
});
为什么这个测试总是评估为真?
即使我更改比较值,此测试的计算结果仍为真。如果我在 expect 之前添加一个 console.log,它不会打印,这让我觉得测试永远不会被评估并且 chai 的空响应为真。我是运行ning node v4.2.2,最新版nightmare和expect。我 运行 使用 mocha index.js(此文件的名称)从终端进行测试。
function*
和 yield
是一个名为 Generators.
README 中的示例后有一个附加注释:
Please note that the examples are using the mocha-generators package for Mocha, which enables the support for generators.
因此您需要安装包并将其添加到您的代码中:
require('mocha-generators').install();