2017-10-12 2 views
0

d'abord toutes les versions que je utilise:échoue toujours Protractor premier test

chromedriver protractor V5.1.2 v2.33 noeud v6.11.4 NPM 3.10.10 sélénium WebDriver v3.0.1

Je suis novice en matière de protractor et j'essaie seulement de l'exécuter sur le test qui est déjà donné nativement par le rapporteur. Il ressemble à ceci

describe('angularjs homepage', function() { 
    it('should greet the named user', function() { 
    browser.get('http://www.angularjs.org'); 

    element(by.model('yourName')).sendKeys('Julie'); 

    var greeting = element(by.binding('yourName')); 

    expect(greeting.getText()).toEqual('Hello Julie!'); 
    }); 

    describe('todo list', function() { 
    var todoList; 

    beforeEach(function() { 
     browser.get('http://www.angularjs.org'); 

     todoList = element.all(by.repeater('todo in todoList.todos')); 
    }); 

it('should list todos', function() { 
     expect(todoList.count()).toEqual(2); 
     expect(todoList.get(1).getText()).toEqual('build an AngularJS app'); 
    }); 

    it('should add a todo', function() { 
     var addTodo = element(by.model('todoList.todoText')); 
     var addButton = element(by.css('[value="add"]')); 

    addTodo.sendKeys('write a protractor test'); 
    addButton.click(); 

    expect(todoList.count()).toEqual(3); 
    expect(todoList.get(2).getText()).toEqual('write a protractor test'); 
    }); 
    }); 
}); 

C'est ici les conf.js

exports.config = { 
    directConnect: true, 

    // Capabilities to be passed to the webdriver instance. 
    capabilities: { 
    'browserName': 'chrome' 
    }, 

    // Framework to use. Jasmine is recommended. 
    framework: 'jasmine', 

    // Spec patterns are relative to the current working directory when 
    // protractor is called. 
    specs: ['example_spec.js'], 

    // Options to be passed to Jasmine. 
    jasmineNodeOpts: { 
    defaultTimeoutInterval: 30000 
    } 
}; 

Lorsque je tente de lancer cela, il me donne l'erreur suivante:

Failures: 
1) angularjs homepage should greet the named user 
    Message: 
    Failed: Timed out waiting for asynchronous Angular tasks to finish after 11 seconds. This may be because the current page is not an Angular application. Please see the FAQ for more details: https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular 
    While waiting for element with locator - Locator: by.model("yourName") 
    Stack: 
    ScriptTimeoutError: asynchronous script timeout: result was not received in 11 seconds 
     (Session info: chrome=60.0.3112.113) 
     (Driver info: chromedriver=2.33.506092 (733a02544d189eeb751fe0d7ddca79a0ee28cce4),platform=Linux 3.16.0-4-amd64 x86_64) 
     at WebDriverError (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:27:5) 
     at ScriptTimeoutError (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:203:5) 
     at Object.checkLegacyResponse (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:505:15) 
     at parseHttpResponse (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:509:13) 
     at doSend.then.response (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:440:13) 
     at process._tickCallback (internal/process/next_tick.js:109:7) 
    From: Task: Protractor.waitForAngular() - Locator: by.model("yourName") 
     at Driver.schedule (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:816:17) 
     at ProtractorBrowser.executeAsyncScript_ (/usr/lib/node_modules/protractor/lib/browser.ts:609:24) 
     at angularAppRoot.then (/usr/lib/node_modules/protractor/lib/browser.ts:643:23) 
     at ManagedPromise.invokeCallback_ (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1366:14) 
     at TaskQueue.execute_ (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2970:14) 
     at TaskQueue.executeNext_ (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2953:27) 
     at asyncRun (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2813:27) 
     at /usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:676:7 
     at process._tickCallback (internal/process/next_tick.js:109:7)Error 
     at ElementArrayFinder.applyAction_ (/usr/lib/node_modules/protractor/lib/element.ts:482:23) 
     at ElementArrayFinder.(anonymous function) [as sendKeys] (/usr/lib/node_modules/protractor/lib/element.ts:96:21) 
     at ElementFinder.(anonymous function) [as sendKeys] (/usr/lib/node_modules/protractor/lib/element.ts:873:14) 
     at UserContext.<anonymous> (/home/kunstmann/Downloads/node-v6.11.4-linux-x64/lib/node_modules/npm/node_modules/protractor/example/example_spec.js:5:35) 
     at /usr/lib/node_modules/protractor/node_modules/jasminewd2/index.js:112:25 
     at new ManagedPromise (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1067:7) 
     at ControlFlow.promise (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2396:12) 
     at schedulerExecute (/usr/lib/node_modules/protractor/node_modules/jasminewd2/index.js:95:18) 
     at TaskQueue.execute_ (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2970:14) 
     at TaskQueue.executeNext_ (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2953:27) 
    From: Task: Run it("should greet the named user") in control flow 
     at UserContext.<anonymous> (/usr/lib/node_modules/protractor/node_modules/jasminewd2/index.js:94:19) 
    From asynchronous test: 
    Error 
     at Suite.<anonymous> (/home/kunstmann/Downloads/node-v6.11.4-linux-x64/lib/node_modules/npm/node_modules/protractor/example/example_spec.js:2:3) 
     at Object.<anonymous> (/home/kunstmann/Downloads/node-v6.11.4-linux-x64/lib/node_modules/npm/node_modules/protractor/example/example_spec.js:1:63) 
     at Module._compile (module.js:570:32) 
     at Object.Module._extensions..js (module.js:579:10) 
     at Module.load (module.js:487:32) 
     at tryModuleLoad (module.js:446:12) 

3 specs, 1 failure 
Finished in 17.5 seconds 

[11:34:30] I/launcher - 0 instance(s) of WebDriver still running 
[11:34:30] I/launcher - chrome #01 failed 1 test(s) 
[11:34:30] I/launcher - overall: 1 failed spec(s) 
[11:34:30] E/launcher - Process exited with error code 1 

Comme je l'ai dit , Je n'ai rien écrit de tout ça. Le code a été fourni par rapporteur lui-même dans un dossier appelé exemple. Maintenant, cependant, j'ai essayé de changer les cas de test, parce que je ne comprenais pas pourquoi le premier échouerait. Cela me semblait parfaitement juste. Et maintenant, voici ce qui est étrange. Quand je place un cas de test différent sur le dessus, le nouveau - qui est maintenant au sommet - échouera, mais celui qui était au sommet avant n'aura plus de problèmes. Je peux le faire avec chaque cas de test, le premier cas échouera toujours, mais dès que je l'éloigne du sommet, il fonctionne soudainement.

J'ai déjà essayé de suivre le lien dans le message d'erreur, mais cela n'a rien fait pour moi. J'ai aussi tout mis à jour une centaine de fois, mais rien n'a changé.

Est-ce que anyboby sait ce que c'est? C'est vraiment étrange ...

+0

Le navigateur s'ouvrait avec la page 'http://www.angularjs.org'. –

+0

Oui, la page angulaire s'ouvre et je peux voir tous les tests en cours sauf le premier. –

Répondre

1

Vous devez dire Protractor ne pas attendre Angulaire $ http et $ timeout, comme la façon suivante:

Old dépréciée façon:

browser.ignoreSynchronization = true; 

Nouveau manière correcte:

browser.waitForAngularEnabled(false); 

cette aide?

+0

Où est-ce que je le mets exactement dans mon test? Je suis désolé, je suis nouveau à rapporteur et ne comprends pas encore tout à fait ... –

+0

Ça marche! Mais qu'est-ce que cela fait réellement? –

+0

Avec cette commande Protractor n'attendra pas les tâches $ http ou $ timeout, voir [Protractor] (http://www.protractortest.org/#/api?view=ProtractorBrowser.prototype.waitForAngularEnabled) Veuillez accepter ma réponse, si ça marche ;-) – Batajus