我正在尝试读取绑定元素的文本值。 我已经使用函数 getText() 来读取元素的文本值,但它不起作用。 有没有其他方法可以这样做
ptor = protractor.getInstance();
ptor.get('http://www.angularjs.org');
ptor.findElement(protractor.By.input("yourName")).sendKeys("Julie");
var greeting = ptor.findElement(protractor.By.binding("{{yourName}}!"));
console.log(greeting.getText());
我有同样的问题。 我刚刚启动并运行了量角器,但似乎无法从输入元素中获取数据。 我的测试是:
it('should allow text entry into the userName field', function(){
userNameInput = ptor.findElement(protractor.By.input('user.userName'));
userNameInput.sendKeys(testUserName);
expect(userNameInput.getText()).toEqual(testUserName);
});
但测试失败:
1) 登录测试登录应该允许在用户名字段中输入文本信息:预期 '' 等于 'xacttester'。
当我观看测试时(通过用ptor.driver.sleep(2000)
减慢它的速度),我看到它在字段中输入文本,但是当它调用getText()
,它返回一个空字符串。
有人对我做错了什么有任何想法吗?
@vishalshivnath请查看文档以获取有关 webdriver 和量角器如何工作的信息 - 量角器操作返回承诺,因此您可能是一个承诺对象。
@tennisgent有一个奇怪的 webdriver 怪癖,即 getText() 对于<input>
元素始终为空。 尝试改为userNameInput.getAttribute('value')
。
可以使用 $ 而不是browser.findElement',
it('should return the same result as browser.findElement', function() {
browser.get('index.html');
// var e = element(by.id('new_todo'));
var e = $('#new-todo');
e.sendKeys("foo");
expect(e.getAttribute('value')).toEqual(
"foo")
});
最有用的评论
@vishalshivnath请查看文档以获取有关 webdriver 和量角器如何工作的信息 - 量角器操作返回承诺,因此您可能是一个承诺对象。
@tennisgent有一个奇怪的 webdriver 怪癖,即 getText() 对于
<input>
元素始终为空。 尝试改为userNameInput.getAttribute('value')
。