以下代码未将布尔值作为返回类型返回。而是将其作为函数返回
var resAbnormal = await Selector(resultCard.find('.dbm-lab-result-card-container').nth(y).find('.titlerow')).hasClass('abnormal');
答案 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);
希望这会有所帮助。