我是量角器的新手,我正在努力比较if条件下的值,我不确定我缺少什么。请检查我的规格,让我知道我需要做什么。
Spec.js:
非角度页面:单击元素并将getText()
放入数组
browser.driver.findElements(by.css('classname')).then(function (list) {
pageCounts = list.length;
for (var pageIndex = 0; pageIndex < pageCounts; pageIndex++)
{
pageName[pageIndex] = list[pageIndex].getText();
list[pageIndex].click();
}
Angular Page:检查标题
if (pageCounts > 1) {
element(by.xpath('')).getText().then(function (title)
{
expect(title).toBe('Accounts Created!');
非角度页面:匹配标题后,它会移动到另一个非角度页面,并将上述代码中的所有getText()
值与菜单中的所有元素进行比较,然后单击确切的匹配
browser.driver.findElements(by.xpath('xpath')).then(function (totalPages) {
for (var menulength = 1; menulength < totalPages.length; menulength++){
menuPath[menulength] = browser.driver.findElement(by.xpath('xpath'));
menuPath[menulength].getText().then(function (menu) {
for (var menuIndex = 0; menuIndex < pageCounts; menuIndex++) {
if (menu === pageName[menuIndex]) {
browser.driver.findElement(by.xpath('')).click();
}
else
{
browser.driver.findElement(by.xpath('')).click();
}
}
}
});
它永远不会进入循环if (menu === pageName[menuIndex])
。
答案 0 :(得分:1)
您可以使用ElementArrayFinder
上的each()
功能简化代码:
var pages = element.all(by.css(".classname"));
var totalPages = element.all(by.xpath("xpath"));
pages.each(function (page) {
totalPages.each(function (totalPage) {
page.getText().then(function (pageText) {
totalPage.getText().then(function (totalPageText) {
if (pageText === totalPageText) {
element(by.xpath('xpath1')).click();
} else {
element(by.xpath('xpath2')).click();
}
});
})
});
});
还有一个方便的map()
功能也可以在这里应用。