我正在使用selenium Java自动化,一个名为'preview'的动作将提交一个提取(财务数据)流程,它将进入一个名为'previewing'的阶段。通常需要2-5分钟的时间来完成“预览”过程,并且阶段会变为“草稿”。
根据这个答案显式等待是一种方法。 Wait for 5 min for an element to appear or a process to complete
有更好的方法吗? Serenity是否提供超过Selenium的任何东西?
您可以使用显式等待1分钟并在while循环中使用它。对于例如
WebElement element = driver.findElement(By(Identifier for DRAFT Status));
WebDriverWait wait = new WebDriverWait(driver, 60);
while (element == null) {
element = wait.until(ExpectedConditions.elementToBeClickable(By(Identifier for DRAFT Status));
}
在经典的Serenity页面对象中:
withTimeoutOf(Duration.ofMinutes(5)).waitFor(DRAFT_STATUS_ELEMENT);
在剧本中:
WaitUntil.the(DRAFT_STATUS_ELEMENT, isVisible()).forNoMoreThan(300).seconds())