我需要使用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)
答案 0 :(得分:1)
你在哪里传递元素?你必须解决getText承诺。试试这个:
this.driver.findElement(selenium.By.id('floor-name')).getText().then(function(text){
expect(text).toMatch("Floor 1");
});