我是量角器(使用Coffeescript)的新手,当我运行以下测试用例时,我收到此错误。
it 'Check if the visitor count is incremented', ->
expect(By.css('#total-visitor-value').text().length).toBeTruthy()
我收到此错误:
✗ Check if the visitor count is incremented (0.016 secs)
- TypeError: Object By.cssSelector("#total-visitor-value") has no method 'text'
我不确定我做错了什么?有人可以解释一下吗?
答案 0 :(得分:1)
我认为使用的方法是getText()
而不是text()
。
试试这个:
expect(by.css('#total-visitor-value').getText().length).toBeTruthy()
答案 1 :(得分:1)
您忘记引用该元素。此外,您的CSS查找是通过其ID值查找元素,因此请使用by.id。 .getText()调用返回一个promise,你必须考虑它的解析。你的测试应该是这样的:
expect(element(by.id('total-visitor-value')).getText().length).toBeTruthy();
以下是量角器定位器的参考:http://angular.github.io/protractor/#/locators
如果你愿意,你仍然可以使用by.css引用它(你的引用是正确的)但是by.id更精确。
答案 2 :(得分:0)
首先,是的,您正在寻找的方法是getText()
。另外,我不会检查文本的.length
,而是使用jasmine-matchers
中的toBeNonEmptyString()
茉莉花匹配器:
expect(element(by.css('#total-visitor-value')).getText()).toBeNonEmptyString();
请注意可读性。