我在 selenium 工作,现在为了检查元素的可见性,我使用以下等待:
@FindBy (css=".delete-basket-modal-btn") WebElement deleteItemFromBasketCancelButton;
public void clickDeleteItemFromBasketCancelButton() throws InterruptedException {
wait.until(ExpectedConditions.elementToBeClickable(deleteItemFromBasketCancelButton));
deleteItemFromBasketCancelButton.click();
}
这不是个好主意,此功能不检查元素的存在,所以有时我会得到“过时的元素参考元素未附加到页面文档”
现在我试图创建通用函数,它将被我的所有页面对象类继承。在此函数中,我需要检查(5 秒)传入参数的 WebElement 的存在、启用、可点击性和可见性。
目前我在下面有新功能,但我不知道这是解决我问题的好方法
public void verifyElement(WebElement element) throws InterruptedException {
boolean isPresent = false;
for (int i = 0; i < 5; i++) {
try {
if (element != null) {
isPresent = true; // metoda do czekania na element
break;
}
} catch (Exception e) {
// System.out.println(e.getLocalizedMessage());
Thread.sleep(1000);
}
}
Assert.assertTrue(isPresent, "\"" + element + "\" is not present.");
boolean isEnabled = false;
for (int i = 0; i < 5; i++) {
try {
if (element.isEnabled()==true) {
isEnabled = true;
break;
}
}catch (Exception e) {
Thread.sleep(1000);
}
}
Assert.assertTrue(isEnabled, "\"" + element + "\" is not enabled.");
}
您对这个问题有什么建议或类似的问题吗?
相关分类