我有一个使用requireJs的AngularJs应用程序,因此它使用引导应用程序的延迟方法。我正在尝试使用Protractor和它内置的黄瓜支持的组合来测试它。
我可以从量角器github页面here运行黄瓜测试,测试通过正常。当我尝试添加测试以测试页面上存在的html元素时,它无法说“没有使用定位器找到元素”,我试图通过绑定或css选择器找到它。
var chai = require('chai');
var chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);
var expect = chai.expect;
module.exports = function() {
var ptor = protractor.getInstance();
this.Before(function(callback) {
//Otherwise i get Error while waiting for Protractor to sync with the page error
ptor.ignoreSynchronization = true;
callback();
});
this.Given(/^I run Cucumber with Protractor$/, function(next) {
next();
});
this.Given(/^I go on(?: the website)? "([^"]*)"$/, function(url, next) {
ptor.driver.get('http://0.0.0.0:8000');
next();
});
this.Then(/^it should still do normal tests$/, function(next) {
expect(true).to.equal(true);
next();
});
this.Then(/^it should expose the correct global variables$/, function(next) {
expect(protractor).to.exist;
expect(browser).to.exist;
expect(by).to.exist;
expect(element).to.exist;
expect($).to.exist;
next();
});
this.Then(/the title should equal "([^"]*)"$/, function(text, next) {
expect(ptor.getTitle()).to.eventually.equal(text).and.notify(next); //passes
//sleep here just to see the html is definately rendered
ptor.sleep(2000);
// when i add this it fails - No element found using locator
expect(element(by.binding('title')).getText()).to.eventually.equal('Main');
next();
});
};
我想知道这是一个使用技术组合的问题,因为我没有使用延迟自举与量角器,直到我介绍黄瓜的情况。有没有其他人有使用require /量角器/黄瓜的经验?
答案 0 :(得分:0)
以下是有关该问题的一些信息Protractor Issue Page
由于您使用的是RequireJS,因此Protractor可能存在同步问题。
试
browser.ignoreSynchronization = false;