首页 > 解决方案 > Testcafe 等到一个元素有特定的文本

问题描述

使用 TestCafe 上传图像后,服务器将进行一些处理。而这一次,网站上的标签将以“Inprogress”作为标签。服务器准备好后,它将更改为日期。但是,我想告诉 Testcafe 脚本等到标签不再是“Inporgress”。为此我做了:

    const DeliveryStatus = {
        element: Selector('div.cl-asset-published').with({timeout: 70000}),
        delivered: 'Inprogress'
    };

在我的剧本中

await t
     .expect(DeliveryStatus.element).notContains(DeliveryStatus.delivered, { timeout: 70000 })

但是这一步失败了。我收到的消息是“AssertionError:被测对象必须是数组、映射、对象、集合、字符串或弱集,但给定了函数”,但我不知道为什么。

有什么建议可以解决这个问题吗?

标签: testingautomated-testse2e-testingweb-testingtestcafe

解决方案


您将一个元素选择器传递给函数,该选择器返回元素而不是字符串expect。尝试使用元素的innerText属性,如下所示:

await t
 .expect(DeliveryStatus.element.innerText)
 .notContains(DeliveryStatus.delivered, { timeout: 70000 })

推荐阅读