无法比较if语句中的element.getText()值 - 在Protractor自动化中

时间:2015-06-02 05:01:46

标签: javascript angularjs testing protractor end-to-end

我是量角器的新手,我正在努力比较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])

1 个答案:

答案 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()功能也可以在这里应用。