Jquery 是否未定义量角器.text()或.html()?

Jquery 是否未定义量角器.text()或.html()?,jquery,coffeescript,jasmine,protractor,Jquery,Coffeescript,Jasmine,Protractor,我是量角器的新手(使用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) - Ty

我是量角器的新手(使用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'

我不确定我做错了什么?有人能解释一下吗?

我相信使用的方法是
getText()
而不是
text()

试试这个:
expect(by.css(“#total visitor value”).getText().length.toBeTruthy()

您忘记引用元素了。此外,CSS查找是根据元素的ID值查找元素,因此请改用by.ID。.getText()调用返回一个承诺,您还必须考虑它。您的测试应该如下所示:

expect(element(by.id('total-visitor-value')).getText().length).toBeTruthy();
以下是量角器定位器的参考:


如果需要,您仍然可以使用by.css引用它(您的引用是正确的),但是by.id更精确。

首先,是的,您正在寻找的方法是。另外,我不会检查文本的
.length
,而是使用
toBeNonEmptyString()
jasmine matcher,来自:


注意可读性。

感谢您的回复@Buck Kimbriel,我仍然得到相同的错误:-TypeError:Object By.cssSelector(“总访问者值”)没有方法“getText”,我猜量角器没有找到该元素。尝试将
by.css(“#总访问者值”)的返回记录到日志中
expect()
在量角器中被“修补”并隐式解析承诺。在这种情况下没有必要使用
then()
。但是,对于缺少的
元素()
,我已经尝试了你的建议,但仍然失败了。这就是我得到的`-TypeError:objectby.cssSelector(#total visitor value“)没有方法“getText”`很好地知道expect()正在修补。我一定是老版本的。谢谢@alecxe@TechnoCorner您仍然缺少元素()。getText()方法就是这样。我不确定“量角器中的expect()是“修补的”并隐式解析承诺的。”通常是这样,但我发现情况并非总是如此。-TypeError:Object#没有方法“toBeNonEmptyString”。这就是我想要的get@TechnoCorner添加了
要求(“jasmine expect”)
onPrepare()
expect(element(by.css('#total-visitor-value')).getText()).toBeNonEmptyString();