我的grid
以下html代码位于pastebin.com/GBP3AZNQ
我想验证是否存在“test123”。我想遍历列master的义务名称的每一行,并查找文本test123。
任何人都可以指导我如何做到这一点吗?
答案 0 :(得分:1)
您可以按parent class
进行操作,如下所示:
element.all(by.xpath("//div[@class='ui-grid-cell-contents ng-scope ng-binding']")).getText().then(function (msg)
{
console.log("Grid contains" + msg);
expect(msg).toContain("test123");
}
如果假设Master_obligation名称为test_876
然后
var master_obligation_name= "test_876" ;
假设您填写的义务为:
element(by.xpath("path to master_obligation text field")).sendKeys(master_obligation_name);
创建行后,验证新添加的行:
var row_check = element(by.xpath("//div[contains(text(),'test_876')]"));
if(row_check.isPresent())
{
row_check.getText().then(function (msg) {
console.log("Grid contains" + msg);
});
}
快乐学习。 : - )
答案 1 :(得分:0)
您可以使用Protractor API的element.all()。each()方法来满足您的要求。请按照以下代码。将定位器放在下面的代码中给出特定列的所有行。它将完美地工作。
element.all(by.css('locatorwhichgiveallrows')).each(function(rowElement,
index) {
rowElement.getText().then(function (rowText) {
if(rowText=="test123"){
return true;}
});
}).then(function(isPresent){
console.log("test123 is Present"+isPresent);
});
答案 2 :(得分:0)
检查此代码。它检查表中是否有给定的文本。
this.searchCourseGrid = function(course){
var row = element.all(by.css('css path to tr'));
var cells = row.all(by.tagName('td'));
var cellTexts = cells.map(function (cell) {
return cell.getText();
}).then(function(cellTexts){
expect(cellTexts).toContain(course);
});
};