我安装了node.js并安装了量角器。我有使用selenium-webdriver的经验但是Protractor让我疯了!我也不熟悉javascript。
这就是我的代码:
describe('My app', function() {
var result = element(by.id('result-name'));
var enterBtn = element(by.id('enter'));
var clearFieldBtn = element(by.id('clear-field');
it('should bring up components on load', function() {
browser.get(`http://localhost:${process.env.PORT}`);
browser.wait(until.titleContains('Sample App'), 500);
browser.wait(until.presenceOf(browser.element(by.id('my-test-app'))), 500);
expect(enterBtn).isPresent;
});
it('result should equal username', function () {
browser.get(`http://localhost:${process.env.PORT}`);
expect(clearFieldBtn).isPresent;
expect(result.getText()).toEqual('John Smith'); //both tests pass without this line of code
});
});
最后一行“expect(result.getText())。toEqual('John Smith');”抛出一个错误。我明白了:
expect(...).toEqual is not a function
非常感谢任何帮助。我花了几个小时试图寻找解决方案并尝试不同的事情。
我还想在api文档中实现isPresent函数,如下所示:expect($('。item')。isPresent())。toBeTruthy();
我试着这样做:
expect(clearFieldBtn).isPresent().toBeTruthy();
但我明白,现在不是一个功能......
答案 0 :(得分:2)
高于该线的预期似乎很差。它应该读
expect(clearFieldBtn.isPresent()).toBeTruthy();
不确定这是否导致下面这行奇怪的错误...只是想我会把它扔出去。您需要在期望中调用所有量角器API,因为isPresent
不是expect
的属性
答案 1 :(得分:1)
您是否尝试过以下这些专栏:
clearFieldBtn.isPresent().then(function(bln) {
expect(bln).toBe(true);
});
result.getText().then(function(tmpText) {
expect(tmpText).toBe('John Smith');
});
如果在result.getText()上仍然出现错误,请检查结果对象是否存在。