возвращаемое значение из вспомогательной функции - PullRequest
1 голос
/ 27 января 2020

У меня очень много таблиц на разных страницах платформы, и я хотел создать обобщенную функцию c, такую ​​как - предоставить имя таблицы и метку столбца, и хотел, чтобы текст возвращался функцией обратно в тест.

Я импортировал эту функцию в тест и могу отправить определение таблицы без объявления селектора в функции. Начнем с того, что я могу бороться с возможностью вернуть tdText обратно в тест. Любое понимание - или я делаю это совершенно неправильно?

export async function columnMatcher(tableDefinition){
    const table       = tableDefinition;
    const rowCount    = await table.find('tbody > tr').count;
    const columnCount = await table.find('tbody > tr').nth(0).find('*').count;


    for(let i = 0; i < rowCount; i++) {
        for(let j = 0; j < columnCount; j++) {  
            let tdText = await table.find('tbody > tr').nth(i).find('*').nth(j).textContent;
        }
    }
}

ОБНОВЛЕНИЕ: я смог просто добавить return tdText, и это сработало. Тем не менее, я хотел бы это в качестве функции клиента. Все еще выясняю, как работать с клиентскими функциями.

1 Ответ

1 голос
/ 29 января 2020

вспомогательная функция:

import {t} from "testcafe" 

export async function columnMatcher(tableDefinition, columnValue, columnReference,columnValuer,columnReferencer){

    const table       = tableDefinition;
    const rowCount    = await table.find('tbody > tr').count;          

    for(let i = 0; i < rowCount; i++) {
        const tdText = await table.find('tbody > tr').nth(i).find('*').nth(columnValuer).textContent;
        const tdReferrer = await table.find('tbody > tr').nth(i).find('*').nth(columnReferencer).textContent;
        if (tdText == columnValue && tdReferrer == columnReference){
            const foundMatch = true
            return foundMatch;
        }
    }
}

в моем тесте:

const foundMatch = await columnMatcher(messagingListPage.messageListtable,userdata.reasontype,userdata.templatename,columnvaluer,columnreferencer)  
    if (foundMatch != true){
        console.log ("Match was not found")
      }
...