J'essaie d'écrire des tests de bout en bout et j'ai refusé d'utiliser async et d'attendre.
fichier de configuration
exports.config = {
framework: 'jasmine',
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['spec.js'],
Selenium_PROMISE_MANAGER: false,
getPageTimeout: 10000,
multiCapabilities: [
{
browserName: 'firefox'
}, {
browserName: 'chrome'
}
]
}
fichier spec
describe('home-view', function(){
beforeEach(async function(){
await browser.get('http://localhost:49335/index.html#!/home');
});
it('sorted by firstname', async function(){
await element(by.css("[ng-click=\"sortData('firstname')\"]")).click();
var firstname = element.all(by.repeater('a in emps')).all(by.css('td'));
expect(await firstname.get(0).getText()).toEqual('abraham');
});
})
Erreur Erreur lors de l'attente de la synchronisation de Protractor avec la page: "la testabilité angularJS et la testabilité angular sont indéfinies. Cela peut être dû au fait qu'il s'agit d'une page non angulaire ou parce que votre test implique le client - navigation latérale, ce qui peut interférer avec l'amorçage de Protractor. "
Pourquoi ai-je cette erreur? Merci
Donnez à getPageTimeOut plus de 20 secondes. Utilisez l'attente explicite comme browser.sleep (2000) après la méthode browser.get. L'erreur survenue peut être due à la lenteur de la réponse de la page Web et à l'utilisation de dirctConnect au lieu de seleniumAddress.
Plus tôt Tout ce dont j'avais besoin pour l'ajouter dans mon script.js browser.driver.ignoreSynchronization = true;
Cependant, l'ajout de ceci a résolu mon problème. browser.waitForAngularEnabled (false);
Donc, tout à fait final script.js est
describe('My first non angular class', function() {
it('My function', function() {
browser.driver.ignoreSynchronization = true;
browser.waitForAngularEnabled(false);
browser.driver.manage().window().maximize();
//browser.get('http://juliemr.github.io/protractor-demo/');
browser.driver.get('https://stackoverflow.com/users/login');
element(by.id('email')).sendKeys('6');
})
})