Ci sono altre domande su SO con lo stesso problema, ma le soluzioni non hanno funzionato per me. Qui miei spec.jsng: test non trovato nessun injector per argomento elemento per getTestability
describe('Protractor Demo App', function() {
it('should have a title', function() {
browser.driver.get('http://rent-front-static.s3-website-us-east-1.amazonaws.com/');
expect(browser.getTitle()).toEqual('How It Works');
});
});
Ed ecco i miei conf.js
exports.config = {
framework: 'jasmine',
rootElement: 'body',
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['spec.js']
}
Così, quando si tenta di eseguire il mio test im ottenere l'errore
Message:
Failed: Error while waiting for Protractor to sync with the page: "[ng:test] no injector found for element argument to getTestability\nhttp://errors.angularjs.org/1.5.0/ng/test"
Stack:
Error: Failed: Error while waiting for Protractor to sync with the page: "[ng:test] no injector found for element argument to getTestability\nhttp://errors.angularjs.org/1.5.0/ng/test"
at C:\Users\ShapeR\PycharmProjects\ratest\node_modules\jasminewd2\index.js:101:16
at Promise.invokeCallback_ (C:\Users\ShapeR\PycharmProjects\ratest\node_modules\selenium-webdriver\lib\promise.js:1329:14)
at TaskQueue.execute_ (C:\Users\ShapeR\PycharmProjects\ratest\node_modules\selenium-webdriver\lib\promise.js:2790:14)
at TaskQueue.executeNext_ (C:\Users\ShapeR\PycharmProjects\ratest\node_modules\selenium-webdriver\lib\promise.js:2773:21)
1 spec, 1 failure
ho un bootstrapping manuale per body element e imposta rootElement al body in config, ma non ha aiutato. Ho anche provato a rimuovere il boostraping manuale e aggiungere semplicemente ng-app = 'rentapplicationApp' all'elemento body, ma non cambia nulla, sempre lo stesso errore.
Quindi cosa c'è che non va?
Penso che un'applicazione "bootstrap manuale" sia ancora impegnativa per essere sincronizzata con il goniometro. Ti andrebbe bene disattivando la sincronizzazione con 'browser.ignoreSynchronization = true'? – alecxe
Inoltre, prova a sostituire '$ timeout' con' $ interval', ovunque tu lo usi. Quindi, avvia regolarmente l'app con 'ng-app' definita su' body'. Ancora lo stesso problema? – alecxe
@alecxe Sì, come ho detto che la sostituzione del bootstrap manuale con ng-app non ha cambiato nulla. Sostituendo $ timeout con $ intervallo non cambierà nulla. ignoreSynchronization = true fai questo semplice test, ma non penso davvero che sia una soluzione, dato che da ciò che ho letto in http://www.protractortest.org/#/timeouts è usato per pagine senza angoli, quindi credo che altre funzioni del goniometro non funzionerà neanche con esso .. – Aldarund