我目前正在尝试迭代转发器并删除由我的测试创建的广告系列。该名称是通过spec文件中的调用传入的,然后应该使用它来过滤转发器中的任何广告系列,并在找到具有该名称的广告时选择删除按钮,目前它似乎不起作用,我我不知道为什么因为我没有找到任何错误的元素未找到等等。所以我认为我的逻辑是错误的。
我正在使用pageObject.js来支持spec.js文件。
pageObject.js
this.campaignDelete = function(name) { // Currently not tested.
element.all('campaign in campaignsName').filter(function(item) {
item.element(by.binding('campaign.Name')).getText().then(function(title) {
item.foreach(function() {
if(title === name) {
this.delete = element(by.css('[ng-click="showDeleteCampaignModel(campaign)"]')).click();
this.confirm = element(by.css('[ng-click="deleteCampaign()"]')).click();
}
});
});
});
};
Spec.js
describe('Deletes the newly created campaign', function() {
beforeEach(function() {
browser.get(browser.params.urls.dashboard);
});
it('Should delete the newly created campaign', function() {
campaignPage.campaignDelete(browser.params.campaign.name);
});
});
答案 0 :(得分:0)
代码中的第二行缺少 by.repeater 定位器策略,它应该是 - element.all(by.repeater('campaign in campaignsName')).filter(function(item) {
您可以使用 - element.all(by.repeater('campaign in campaignsName').column('campaign.Name'))
以下代码应该能够返回匹配的广告系列。
var reqcamp = element.all(by.repeater('campaign in campaignsName').column('campaign.Name')).filter(function(elem, index) {
return elem.getText().then(function(text) {
return text === name;
});
}).first();
我不确定删除声明即。 css部分,是正确的(不确定没有HTML)。如果它不包括相关的广告系列,那么它只会找到页面上的第一个匹配元素。