2 votes

Impossible d'obtenir le texte d'un élément en utilisant le pilote web de Selenium dans les cas de test Jasmine.

J'ai besoin d'obtenir la valeur du texte d'un élément en utilisant le pilote web de Selenium comme suit.

this.driver.findElement(selenium.By.id('floor-name')).then(function(element){
        expect(element.getText()).toMatch("Floor 1");       
})

J'utilise les versions suivantes des librairies

node v6.2.1
selenium-webdriver 2.53.2
jasmine v2.4.1
jasmine-core v2.4.

1

Voici l'erreur que j'obtiens en exécutant le test

Message:
    Expected ManagedPromise::370 {[[PromiseStatus]]: "pending"} to match 'Floor 1'.
  Stack:
    Error: Expected ManagedPromise::370 {[[PromiseStatus]]: "pending"} to match 'Floor 1'.
        at /home/tharsan/tmp/selenium/spec/cleanViewSpec.js:46:27
        at ManagedPromise.invokeCallback_ (/home/tharsan/tmp/selenium/node_modules/selenium-webdriver/lib/promise.js:1379:14)
        at TaskQueue.execute_ (/home/tharsan/tmp/selenium/node_modules/selenium-webdriver/lib/promise.js:2913:14)
        at TaskQueue.executeNext_ (/home/tharsan/tmp/selenium/node_modules/selenium-webdriver/lib/promise.js:2896:21)

1voto

Ram Pasala Points 2923

Où passez-vous l'élément ici ? Vous devez résoudre la promesse getText. Essayez ceci :

 this.driver.findElement(selenium.By.id('floor-name')).getText().then(function(text){
    expect(text).toMatch("Floor 1");       
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X