这是我完整的第一次工作测试:
var expect = require('chai').expect;
var assert = require('assert');
var webdriverjs = require('webdriverjs');
var client = {};
var webdriverOptions = {
desiredCapabilities: {
browserName: 'phantomjs'
},
logLevel: 'verbose'
};
describe('Test mysite', function(){
before(function() {
client = webdriverjs.remote( webdriverOptions );
client.init();
});
var selector = "#mybodybody";
it('should see the correct title', function(done) {
client.url('http://localhost/mysite/')
.getTitle( function(err, title){
expect(err).to.be.null;
assert.strictEqual(title, 'My title page' );
})
.waitFor( selector, 2000, function(){
client.saveScreenshot( "./ExtractScreen.png" );
})
.waitFor( selector, 7000, function(){ })
.call(done);
});
after(function(done) {
client.end(done);
});
});
好吧,它做的并不多,但经过几个小时的工作才能正确设置环境,它就过去了。现在,我使用它的唯一方法是使用waitFor()方法并调整延迟。它工作正常,但我仍然不明白如何确保等待png文件保存在磁盘上。由于我将处理测试订单,因此在安全保存文件之前,我最终会从测试脚本中挂起。
现在,如何改善此屏幕保存顺序并避免丢失我的屏幕截图?
答案 0 :(得分:0)
由于您正在使用webdriverjs的chaning功能,因此在waitFor
函数中使用回调是错误的。
函数saveScreenshot
也被链接。所以正确的方法如下:
it('should see the correct title', function(done) {
client.url('http://localhost/mysite/')
.getTitle( function(err, title){
expect(err).to.be.null;
assert.strictEqual(title, 'My title page' );
})
.waitFor( selector, 2000)
.saveScreenshot( "./ExtractScreen.png" )
.call(done);
});