TestCafe - сохранение результатов селектора в переменной - PullRequest
0 голосов
/ 27 ноября 2018

, чтобы проверить, что мои результаты поиска различаются в зависимости от введенных мной ключевых слов, я хочу сохранить список узлов searchResults перед вводом ключевого слова, а затем сравнить их с nodeList для searchResults, которые я получаю после добавленияключевое слово, но я не могу заставить его работать.

Я пробовал:

let results = await Selector('#example')

Однако это не возвращает мне список узлов.Я также пытался просто использовать clientFunction с document.querySelectorAll(), но TestCafe затем предлагает мне использовать Selector вместо этого.

Что делать?Может быть, есть лучший способ проверить это, чего я не вижу?

1 Ответ

0 голосов
/ 29 ноября 2018

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

Проверьте этот небольшой пример:

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
    function removeSpanId3 () {
        const span = document.getElementById('id3');

        document.querySelector('div').removeChild(span);
    }
</script>
<button id="removeSpan" onclick="removeSpanId3()">Remove span</button>
<div>
    <span id="id1">
        test1
    </span>

    <span id="id2">
        test12
    </span>

    <span id="id3">
        test123
    </span>

    <span id="id4">
        none
    </span>
</div>

test.js:

import { Selector } from 'testcafe';

fixture `test`
    .page('http://localhost:8080');

test('Test1', async t => {
    const results       = await Selector('span');
    const resultsCount1 = await Selector('span').count;

    const result1 = [];
    const result2 = [];

    for (let i = 0; i < resultsCount1; i++) {
        const text = await results.nth(i).innerText;

        result1.push(text);
    }

    // Remove span
    await t.click(Selector('button').withText('Remove span'));

    const resultsCount2 = await Selector('span').count;

    for (let i = 0; i < resultsCount2; i++) {
        const text = await results.nth(i).innerText;

        result2.push(text);
    }

    await t
        .expect(result1.length).eql(result2.length + 1);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...