java - 如何延迟测试以使页面完全加载?
问题描述
我使用io.qameta.atlas,测试第一个复选框后如何延迟?这是测试:
@Test
public void produrtTest(){
onSite().onMainPage().getButton().findElement(By.xpath("//*[@id=\"-category-section\"]/div/ul/li[1]/label/span")).click();
onSite().onMainPage().getButton().findElement(By.xpath("//*[@id=\"-
category-section\"]/div/ul/li[2]/label/span")).click();
}
我用@Retry annotation(timeout = 20, polling = 5000)
20 秒等待页面加载,但没有暂停。
如何使用waitUntil()方法也不清楚。
解决方案
在您使用的工具的最首页,有以下部分:
等待页面加载。有一个特殊的 shouldUrl(Matcher url) 等待页面当前 url 和 document.readyState 标志的条件。
@BaseUrl("http://www.base.url/search")
public interface SearchPage extends WebPage {
@Description("Account button")
@FindBy("//div[@class = 'account-button']")
AtlasWebElement accountButton();
}
@BaseUrl("http://www.base.url/account")
public interface AccountPage extends WebPage {
//elements for account page here
}
也
等待单个元素的条件。AtlasWebElement 有两种不同的等待扩展方法。
首先 - waitUntil(Matcher matcher) 等待可配置的超时并在传递的匹配器中轮询某些条件,如果条件不满足则抛出 java.lang.RuntimeException。
第二 - should(Matcher matcher) 在传递的匹配器上以相同的方式等待,但抛出 java.lang.AssertionError 代替。
其中之一应该满足您的需求,具体取决于您在等待什么(您没有指定)。
推荐阅读
- spacy - 如何微调 spacys 词向量
- amazon-web-services - ECS如何查看图片下载时间?
- python - 列表中的多处理项目 - Python,为了避免冲突,是否需要使用队列?
- css - 构建 CSS 网格模板的问题
- javascript - 使用数据范围进行表单验证
- python - 替换每行中的值
- math - 为什么计算二叉树组合数的公式是 (2*n)fact / (n)fact * (n+1)fact
- uwp - 如何在 UWP 中绑定来自外部数据模板的数据
- javascript - 获取选项 Material-UI React 中选择的第一个元素
- android - 'android.annotation.NonNull' 在 'android.annotation' 中不公开。不能从外部包访问。'Nullable' 也一样