我基本上都在尝试为此网页编写测试:http://www.talklocal.com/mobile/#/step1
我想填写表单中的信息,然后点击下一步按钮。虽然测试应该将我重定向到表单的第2步(检查url),但它不会反而失败。测试代码:
describe('going from step1 to step 2', function() {
//fill out step 1 form
beforeEach(function() {
browser.get('index.html');
element(by.model('Request.categoryID')).click();
element(by.css('option[value=0]')).click();
element(by.class('where-text ng-pristine ng-valid').sendKeys('20902'));
element(by.class('btn action-button')).click();
});
it('should be on the step2 page', function() {
browser.getLocationAbsUrl().then(function(url) {
expect(url.split('#')[1]).toBe('/step2');
});
});
});
终端中的错误消息:
1) myApp going from step1 to step 2 should be on the step2 page
Message:
TypeError: Object [object Object] has no method 'class'
2) myApp going from step1 to step 2 should be on the step2 page
Message:
Expected '/step1' to be '/step2'.
3 tests, 5 assertions, 2 failures
我已经搜索了错误,并且一直在尝试为元素(by.attribute)方法插入不同的类和属性,但无济于事。
我很感激有关此问题的任何和所有反馈。谢谢!
答案 0 :(得分:2)
没有by.class
定位器,如果您想依赖课程,请改用by.css
:
element(by.css('.where-text.ng-pristine.ng-valid').sendKeys('20902'));
element(by.css('.btn.action-button')).click();
仅供参考,还有by.className
选择器:
element(by.className('action-button')).click();
答案 1 :(得分:0)
Check protractor API doc
by.class无效。您可以使用模型或按钮文本作为按钮。
element(by.model('User.zipcode').sendKeys('20902'));
element(by.buttonText('Next')).click();