需要选择带有文本“rajeshwar_9032”的第二个选项。下面是我写的单击ng-repeat选项的功能,但我无法这样做。请帮忙。
this.SelectProfile = function(Profile){
element.all(by.repeater("profile in vm.allProfiles")).each(function (elm) {
var desiredprofile = elm.element(by.xpath('//div/div/div/div/span[contains(text(), "'+Profile+'")]'));
desiredprofile.click();
});
将文本传递到参数'Profile'
答案 0 :(得分:1)
您可以使用by.cssContainingText('<<>css>', '<<text>>')
而不是这样的xpath来使其更稳定。
请参阅here了解更多详情
您可以执行以下操作
this.SelectProfile = function(Profile) {
return element.all(by.repeater("profile in vm.allProfiles")).filter(function(elm) {
return elm.element(by.css('.username')).getText().then(function(text) {
return text === profile;
})
}).first().element(by.css('.username')).click()
}
答案 1 :(得分:1)
let alert = this.alertCtrl.create({
title: 'Kmart',
message: 'Do you want exit kmart app ?',
buttons: [
{
text: 'Cancel',
role: 'cancel',
handler: () => {
this.logger.info("cancel clicked")
}
},
{
text: 'ok',
handler: () => {
this.platform.exitApp();
}
}
]
});
this.platform.registerBackButtonAction(() => {
console.log('back button pressed')
if (this.navCtrl.canGoBack()) {
console.log('nav can go back')
this.navCtrl.pop()
} else {
//here i have to show the alert for login and home page
alert.present();
}
}, 100);
谢谢,@ AdityaReddy我对你的建议做了一些小调整,效果很好。希望这有帮助。
Finally arrived at a solution. Below code works consistently.