Не могат да се сравнят стойностите на element.getText() в израза if - в автоматизацията на транспортир

Нов съм в транспортира и се боря да сравня стойностите в условие 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();
     }

Ъглова страница: Проверете за заглавието

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]).


person Suk    schedule 02.06.2015    source източник
comment
Моля, покажете своя HTML код и опишете какво се опитвате да постигнете. Може да има по-прост подход.   -  person alecxe    schedule 02.06.2015
comment
Здравейте alexce, благодаря за отговора. Добавих някои коментари в моя код, които може да ви помогнат да разберете моята борба. Успях да премина от неъглови страници към ъглови страници. Основната ми цел е да сравня getText(), да образувам различни страници и след това да изпълня операцията с щракване. Ако използвам условието if(menu == 'String1'), то работи добре, но когато опитам if(menu == pageName[menuIndex]) не   -  person Suk    schedule 02.06.2015


Отговори (1)


Можете да опростите кода, като използвате функцията each() на ElementArrayFinder:

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() функция, която може да се приложи и тук.

person alecxe    schedule 02.06.2015