我有一个应用程序,当用户执行搜索时,会以表格格式显示搜索结果。搜索结果大约有15列以上。为此,我有一个UI测试用例,旨在使用以下内容获取每个列标题:
var resultColumns = "//div[contains(@ng-grid,'searchResult')]//div[contains(@class,'ngHeaderCell')]//div[contains(@class,'HeaderText')]";
var allResultColumnsText = function() {
return element.all(by.xpath(resultColumns)).getText();
};
expect(allResultColumnsText()).toEqual("[matching text]");
我希望这个代码能够获取表的所有列,但我注意到只有取决于浏览器窗口大小的页面上可显示的值才被提取。例如,如果在运行测试时浏览器中只显示最多5列,则上述测试代码仅提取了5个列标题。
我认为AngularJS动态填充DOM以仅包含可显示的列。有没有办法在量角器中使用某些函数获取所有列,而不仅仅是在屏幕上可见的那些?
答案 0 :(得分:0)
Protractor是一个e2e测试框架,它只适用于用户可以看到的元素(这是有意义的)。
- 你可以计算出css,让你的应用程序更具响应性。
- 我认为另一种选择是,能够选择浏览器中用户不可见的dom元素,在你的测试用例中包含Jquery(jquery选择器直接与DOM一起工作):
var $ = require('your/path/to/jquery/jquery.js');
使用带有Jquery的xpath查看this