hasClass方法不返回布尔结果

时间:2019-06-05 07:43:46

标签: css-selectors automated-tests e2e-testing web-testing testcafe

enter image description here以下代码未将布尔值作为返回类型返回。而是将其作为函数返回

var resAbnormal = await Selector(resultCard.find('.dbm-lab-result-card-container').nth(y).find('.titlerow')).hasClass('abnormal');

1 个答案:

答案 0 :(得分:3)

尝试替换您正在使用的选择器,

var resAbnormal = await Selector(resultCard.find('.dbm-lab-result-card-container').nth(y).find('.titlerow')).hasClass('abnormal');

有下一条建议

var resAbnormal = Selector("div.dbm-lab-result-card-container div.abnormal");

选择器的建议是从DOM返回第一个匹配项,即使您有多个与该选择器匹配的DOM元素也是如此:

... <div class="dbm-lab-result-card-container">
    ...
    <div class="whatever abnormal whatever">    <-- you will select this one
    <div class="whatever abnormal whatever">
    ...

如果您像现在一样使用await,则

var resAbnormal = await Selector("div.dbm-lab-result-card-container div.abnormal");

然后,Testcafe将向您返回与该选择器匹配的所有DOM元素,很可能您将返回一个函数/列表,然后必须使用 resAbnormal.nth[x]找到您想要的那个。

此外,如果您等待布尔结果,则应使用以下断言之一:

await t.expect(resAbnormal.exists).ok();
// or
await t.expect(resAbnormal.exists).eql(true);

希望这会有所帮助。