.elements не работает в методах Given / Then step для cucumber при вызове с контекстом / клиентом nightwatch-api - PullRequest
0 голосов
/ 29 февраля 2020

.elements работает нормально в контексте "nightwatch" , и я могу получить количество строк в таблице

module.exports = {
    async 'demo test'(browser) {
        const homePage = browser.page.homepage();
        homePage.navigate();
        let result = await homePage.api.elements('css selector', 'div.flex.mt-4.v-card.v-sheet.theme--light > div > div > table > tbody > tr');
            console.log(" row length is " + "<->" + result.value.length);
    }
};

Вывод: длина строки <-> 10

Однако тот же код не работает, когда я пытаюсь использовать его в методах Given / Then с огурцом в контексте "nightwatch-api" .

const { client } = require('nightwatch-api');
const { Given, Then, When } = require('cucumber');

Given(/^click "([^"]*)" service from list$/, async function (service)  {
    const homepage = client.page.homepage();
        homepage.navigate();
        let result = await homepage.api.elements('css selector', 'div.flex.mt-4.v-card.v-sheet.theme--light > div > div > table > tbody > tr');
    console.log(" row length is " + "<->" + result.value.length);
  });

Ошибка: TypeError: Невозможно прочитать свойство 'value' из неопределенного

Любая идея, как я могу заставить его работать с nightwatch-api и огурцом, Спасибо!

Мое сомнение было верно. Объект Nightwatch Browser и клиент Nightwatch-API отличаются ... Вот доказательство.

module.exports = {
    async 'demo test'(browser) {
        const homePage = browser.page.homepage();
        homePage.navigate();
        let result = await homePage.api.elements('css selector', 'div.flex.mt-4.v-card.v-sheet.theme--light > div > div > table > tbody > tr');
        console.log(" NightWatch Obj Row Length is " + "<->" + result.value.length);

        console.log("<<===================>>");

        const { client } = require('nightwatch-api');
        const { createSession, closeSession, startWebDriver, stopWebDriver } = require('nightwatch-api');
        await createSession();
        const homePage1 = client.page.homepage();
        homePage1.navigate();
        let result1 = await homePage1.api.elements('css selector', 'div.flex.mt-4.v-card.v-sheet.theme--light > div > div > table > tbody > tr');
        console.log(" Nightwatch API Obj Row length is " + "<->" + result1.value.length);
        await closeSession();

    }

};

Вывод ::

NightWatch Obj Row Length is <->10

<<===================>>

FAILED: 1 errors (6.392s)
   TypeError: Cannot read property 'value' of undefined
       at Object.demo test (C:\Users\tajisingh\workspace\dashboard-ui-automation\Tests\dashboard.js:40:70)
       at processTicksAndRejections (internal/process/task_queues.js:97:5)
_________________________________________________

Хотите знать, если кто-нибудь знает, как мы можем получить браузер? объект или что-то похожее из nightwatch-api ... спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...