我正在为登录页面编写e2e测试,我意识到我不知道我的测试应该有多深。我澄清自己:一个主要测试必须是真正的登录,显然,其他一个将是虚假登录。另一项测试可以检查登录页面工作中的现有链接。但是,我应该测试所有页面的元素是否显示?例如:编写一个测试以检查div和内部元素:
it('It should be displayed a Elke Winter div', function(){
var elkeDiv = angularPage.elkeDiv;
expect(elkeDiv.isDisplayed()).toBe(true);
var title = angularPage.titleElke;
var img = angularPage.imgElke;
var content = angularPage.contentElke;
var telephoneDt = angularPage.telDt;
var telephoneDd = angularPage.telDd;
var faxDt = angularPage.faxDt;
var faxDd = angularPage.faxDd;
expect(title.isDisplayed()).toBe(true);
expect(img.isDisplayed()).toBe(true);
expect(content.isDisplayed()).toBe(true);
expect(telephoneDt.isDisplayed()).toBe(true);
expect(telephoneDd.isDisplayed()).toBe(true);
expect(faxDt.isDisplayed()).toBe(true);
expect(faxDd.isDisplayed()).toBe(true);
});
你怎么看?
感谢
答案 0 :(得分:1)
我只测试对用户体验至关重要的页面内容,例如
永远不要测试像 div 这样的html特定内容,而是始终使用像html id或类这样的语义选择器,或者按内容查找它们,例如
by.cssContainingText('#linkOne', 'Click here')
by.buttonText('Send Email')
如果你找到一个你想要定位的div
元素,但是没有html id或html类,那么只要有可能就自己添加它,我使用前缀e2e-
,如e2e-linkOne
所以开发人员知道选择器是为了测试目的而确定的。然后,您定位元素$('.e2e-linkOne')
,而不是标记名和/或位置$$('div').get(2)
。