当前位置: 首页 > 知识库问答 >
问题:

TestCafe-将选择器的结果存储在变量中

元嘉木
2023-03-14

因此,为了测试我的搜索结果是否因我输入的关键字而异,我想在键入关键字之前存储搜索结果的节点列表,然后将它们与添加关键字后得到的搜索结果的节点列表进行比较,但我无法使其起作用。

我试过:

let results = await Selector('#example')

然而,这并没有给我一个节点。我还试图使用一个带有document.querySseltorAll()的clientFunction,但是TestCafe然后告诉我使用Selector。

要怎么做?有没有更好的方法来测试这个,我没看到?

共有1个答案

吴凯
2023-03-14

您可以提取所需的所有属性,以便以后进行比较。

检查这个小例子:

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);
});
 类似资料:
  • 问题内容: 因此,我正在编写此存储过程,而且我真的很喜欢SQL。 我对你们的问题是: 我可以选择整行并将其存储在变量中吗? 我知道我可以做类似的事情: 但是我可以从中选择整行并将其存储在变量中吗? 问题答案: 您可以将字段选择为多个变量: 另一种可能更好的方法是使用表变量: 然后,您可以像常规表一样从表变量中进行选择。

  • 问题内容: 当我使用变量执行此查询时,将显示此错误。 问题答案: 用括号括起来的选择。

  • 问题内容: 我想获取特定的列值a.id并将其存储到变量v_id中。然后使用此值传递到存储过程。 我在Oracle SQL Developer中收到此错误: 错误报告:ORA-06550:第3行,第7列:PLS-00103:遇到以下情况之一时遇到了符号“ V_ID”: :=。(@%;用符号“:=”代替“ V_ID”才能继续。06550. 00000-“行%s,列%s:\ n%s” *原因:通常是PL

  • 问题内容: 我有一个带有以下参数的T-SQL存储过程 我想知道是否可以通过as参数传递结果: 我尝试了类似的方法,但是它不起作用。 问题答案: 您在示例中编写的SELECT查询可能会带回多行(您的SELECT不具有WHERE子句或TOP(n))。如果您打算让过程使用一组“表格”参数,那么从SQL Server 2008开始,您可以使用表值参数。 这涉及到创建用户定义的表表,这无疑将意味着调整存储过

  • 问题内容: 我使用getJSON从我的网站请求JSON。效果很好,但是我需要将输出保存到另一个变量中,如下所示: 我需要将结果保存到其中,但似乎此语法不正确。有任何想法吗? 问题答案: 仅在响应后才能调用,无法获得价值。