waitForAngular 和 "then" 都没有按预期工作
Neither waitForAngular nor "then" work as expected
我尝试了 this Q&A 中提到的所有变体:
第一个
element(by.css('[ng-click="vm.openNewPage()"]')).click().then(function () {
expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true);
});
第二个
element(by.css('[ng-click="vm.openNewPage()"]'));
browser.waitForAngular();
expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true);
第三个:
element(by.css('[ng-click="vm.openNewPage()"]'));
browser.sleep(1)
browser.waitForAngular();
expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true);
none 个通过测试:预期假为真。
除了这个 browser.sleep(1000)
element(by.css('[ng-click="vm.openNewPage()"]'));
browser.sleep(1000)
expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true);
为睡眠时间设置几秒钟显然不是解决方案。
我错过了什么或者我应该怎么做才能成功评估测试
Protractor 版本为:Jasmine2 框架版本 2.1.0
这是我开始测试的命令:
C:\projects\eucngts\e2e\app>protractor conf.js --baseUrl=http://localhost:56225/euc/
这些是我的相关代码:
// conf.js
exports.config = {
directConnect: true,
seleniumAddress: 'http://localhost:4444/wd/hub',
framework: 'jasmine2',
specs: [
'./views/account/loginSpec.js'
,'./views/inStudents/inStudentsSpec.js'
]
}
//Spec File
describe('Testing Students Page', function () {
var inStudents: InStudents = require('./inStudents.js');
var defs: Defs = require('../defs.js');
it('should check cell 2 2 ', function () {
inStudents.createNewInStudent()
});
});
//Testing file
class InStudents {
createNewInStudent() {
element(by.css('[ng-click="vm.openNewPage()"]'));
browser.sleep(1000)
expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true);
}
}
module.exports = new InStudents();
而不是 browser.sleep()
延迟,用 browser.wait()
and wait for the element to become present 明确表示:
var submitButton = element(by.css('[ng-click="vm.submitButtonOfThatPage()"]'));
var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(submitButton), 5000);
我尝试了 this Q&A 中提到的所有变体:
第一个
element(by.css('[ng-click="vm.openNewPage()"]')).click().then(function () {
expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true);
});
第二个
element(by.css('[ng-click="vm.openNewPage()"]'));
browser.waitForAngular();
expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true);
第三个:
element(by.css('[ng-click="vm.openNewPage()"]'));
browser.sleep(1)
browser.waitForAngular();
expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true);
none 个通过测试:预期假为真。 除了这个 browser.sleep(1000)
element(by.css('[ng-click="vm.openNewPage()"]'));
browser.sleep(1000)
expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true);
为睡眠时间设置几秒钟显然不是解决方案。
我错过了什么或者我应该怎么做才能成功评估测试
Protractor 版本为:Jasmine2 框架版本 2.1.0
这是我开始测试的命令:
C:\projects\eucngts\e2e\app>protractor conf.js --baseUrl=http://localhost:56225/euc/
这些是我的相关代码:
// conf.js
exports.config = {
directConnect: true,
seleniumAddress: 'http://localhost:4444/wd/hub',
framework: 'jasmine2',
specs: [
'./views/account/loginSpec.js'
,'./views/inStudents/inStudentsSpec.js'
]
}
//Spec File
describe('Testing Students Page', function () {
var inStudents: InStudents = require('./inStudents.js');
var defs: Defs = require('../defs.js');
it('should check cell 2 2 ', function () {
inStudents.createNewInStudent()
});
});
//Testing file
class InStudents {
createNewInStudent() {
element(by.css('[ng-click="vm.openNewPage()"]'));
browser.sleep(1000)
expect(element(by.css('[ng-click="vm.submitButtonOfThatPage()"]')).isPresent()).toBe(true);
}
}
module.exports = new InStudents();
而不是 browser.sleep()
延迟,用 browser.wait()
and wait for the element to become present 明确表示:
var submitButton = element(by.css('[ng-click="vm.submitButtonOfThatPage()"]'));
var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(submitButton), 5000);