我有两个菜单' Setup
'和' Reports
'使用子菜单' admin users
',' Reports dashboard
',' partner dashboard
',' partner relationship
'等标有红色的。
我想导航或点击使用量角器定位器但无法找到如何选择这些没有id和常用CSS的菜单。我想要这样的东西
var userTypes = element.all(by.repeater('t in user_userTypes'));</br>
userTypes.get(2).click()
答案 0 :(得分:1)
定义一个方法并传递'hrefValue',按锚标记过滤。
var clickParticular = function(hrefValue){
element.all(by.tagName('a')).filter(function(element, index) {
return element.getAttribute('href').then(function (text) {
return text === hrefValue;
});
}).then(function(filteredElements) {
filteredElements[0].click().then(function() {
});
});
}
答案 1 :(得分:1)
从我看到的,这些元素是导航菜单项,Setup
和Reports
是高级菜单,Admin Users
,Reports Dashboard
,Partner dashboard
, Partner Relationship
和Grading Data
是子菜单。我想,要打开一个子菜单,你应该点击相应的菜单。
让我们制作一个可重复使用的功能,接受菜单标签和所需的子菜单标签并使用by.repeater()
定位器filtering菜单按文字显示:
function selectMenu(menuLabel, submenuLabel) {
var menu = element.all(by.repeater("mi in menuItems")).filter(function (menu) {
return menu.all(by.tagName("a")).first().getText().then(function (text) {
return text.indexOf(menuLabel) === 0;
});
}).first();
menu.click(); // open up menu
var submenu = menu.all(by.repeater("s in mi.subMenuItems")).filter(function (submenu) {
return submenu.all(by.tagName("a")).first().getText().then(function (text) {
return text.indexOf(submenuLabel) === 0;
});
}).first();
submenu.click(); // select submenu
}
用法样本:
selectMenu("Setup", "Admin Users");
selectMenu("Reports", "Reports Dashboard");