【发布时间】:2020-08-10 22:38:52
【问题描述】:
所以我有一个非常奇怪的场景,我想在我的代码中添加一个 if-else 语句,这是由于:
如您所见,13:00 没有复选框,而 16:00 有一个复选框,基本上我想做的是一个简单的测试用例,如果有复选框,请单击,否则我们继续按下下一步按钮。意思...
如果我们得到一个复选框来点击,那么我们点击复选框,然后点击下一步。如果我们没有显示/呈现任何复选框,那么我们将跳过它。 (我们不需要等待功能来查看它是否加载,因为它会在我按下特定时间后自动加载(没有来自后端/api的调用)所以如果我按下 16:00 它会立即弹出复选框反之亦然。
it("Has truck and choose first avaliable delivery",
async function () {
const nextStep = servicesPage.getForm().buttons.nextStep;
let lateDelivery = element(by.className("checkbox-label"));
if (lateDelivery.isPresent()) {
console.log("Checkbox")
await utils.elementToBeClickable(lateDelivery, "Late hour checkbox should be clickable");
await utils.click(lateDelivery);
}
console.log("Click")
await utils.elementToBeClickable(nextStep, "Next step button should be clickable");
await utils.click(nextStep);
})
即使我确实有 isPresent() 会发生什么,即使当我检查页面时,它似乎仍然进入 if 语句中,网页上根本没有 element(by.className("checkbox-label")) 出现。每当我在 16:00 之后按下某个时间时,它就会出现。我该怎么做才能让它工作?
【问题讨论】:
标签: javascript selenium jasmine protractor