我正在用量角器,茉莉花,硒,Webdriver-manager测试我的AngularJS应用程序。我试图在测试通过时将浏览器保持在屏幕上,只是为了查看驱动程序是否进行了正确的点击、鼠标悬停和打字,以及我的测试是否属实。
像browser.pause()
这样的陈述似乎行不通。它确实暂停了浏览器,但显然是在describe
块的最开始。我能做些什么来实际控制浏览器(即在单击时观察它,并准确地暂停在我想要的位置)
我的文件如下(所有测试均通过):
.js
exports.config = {
directConnect: true,
seleniumAddress: 'http://localhost:4444/wd/hub',
capabilities: {
'browserName': 'chrome'
},
baseUrl: 'http://localhost:63342/bet/',
framework: 'jasmine',
specs: ['my.spec.js'],
jasmineNodeOpts: {
defaultTimeoutInterval: 30000,
showColors: true,
isVerbose : false
}
};
我的规格.js
describe('my test suite', function () {
describe('log file menu', function () {
var logMenu = by.repeater('logfile in availableLogs');
browser.get('index.html');
it('show details', function () {
element(by.css('[show="showDetail"]')).click().then(function () {
expect($('.max-occupancy-detail').isDisplayed()).toBeTruthy();
});
});
it('should verify number of log files', function () {
element.all(logMenu).then(function(elements){
expect(elements.length).toEqual(6);
});
});
it('should verify the first option is selected', function () {
var first = element.all(logMenu).first();
expect(first.getAttribute('selected')).not.toBeNull();
});
it('should verify the second option is not selected', function () {
var second = element.all(logMenu).get(1);
expect(second.getAttribute('selected')).toBeNull();
});
it('should select the third option', function () {
var third = element.all(logMenu).get(2);
third.click().then(function () {
expect(third.getAttribute('selected')).not.toBeNull();
});
});
browser.pause();
});
});
要使浏览器在测试期间暂停,需要将 browser.pause() 放入要暂停的测试中。
(it()
函数不直接求值,而是保存您传递的测试函数以供以后运行。这就是为什么暂停直接发生在您的示例中的原因。