无法在Jasmine测试用例中获取元素的文本以使用selenium web驱动程序

时间:2016-06-23 05:57:45

标签: selenium selenium-webdriver jasmine tdd selenium-chromedriver

我需要使用selenium web驱动程序获取元素的文本值,如下所示。

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

我正在使用以下版本的库

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

1

这是我在运行测试时遇到的错误

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)

1 个答案:

答案 0 :(得分:1)

你在哪里传递元素?你必须解决getText承诺。试试这个:

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