Textcontent элемента не то, что должно быть с Puppeteer и Jest - PullRequest
0 голосов
/ 31 октября 2019

Я пишу тесты, используя Puppeteer и Jest. В одном из тестов я пытаюсь убедиться, что текстовое содержимое элемента с идентификатором: "#summaryShortDescription" было обновлено правильно. #summaryShortDescription следует изменить, чтобы он содержал тот же текст, что и "#inputFieldWithWordCount", когда для "#inputFieldWithWordCount" указано тип. Этот тест не проходит с:

Ожидается: "" Получено: "Это краткое описание"

Когда я запускаю кукловод в режиме без головы: ложь, я вижу, что все выглядит правильно. В этом случае #summaryShortDescription не является пустым, но содержит текст: «Это краткое описание»

Почему тест не пройден?

test('user can write text in TextField and see results on summary ', async () => {

    //Setup
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('http://localhost:3000/');

    await page.type('#inputFieldWithWordCount', 'This is a short description');

    const text = await page.evaluate(() =>
        [...document.querySelectorAll('#inputFieldWithWordCount')].map(el => el.innerText),
    );

    const shortDescription = text[0];

    await page.evaluate(() =>
        [...document.querySelectorAll('button')].map(
            elem => elem.innerText === 'Summary' && elem.click(),
        ),
    );

    const summaryShortDescription = await page.$eval(
        '#summaryShortDescription',
        el => el.textContent,
    );

    const summaryOfProject = await page.$eval('#summaryOfProject', el => el.textContent);

    expect(summaryShortDescription).toEqual(shortDescription);
});


...