[英]Selenium wait until expected conditions
我正在尝试搜索某些内容,单击搜索按钮后,该按钮进入加载 animation。 如果有结果,则转到下一页,如果没有结果,则会出现一个黄色框。 我该如何编写这一行new WebDriverWait(driver, 1).until
? 我在想直到标题改变或黄色框出现。 但我不确定我该如何编码。
这是我到目前为止得到的
new WebDriverWait(driver, 1).until(driver.getTitle().contains("Overview") || !driver.findElements(By
.xpath("/html/body/div[2]/div/div[3]/div/div[1]/div/div/div[2]/div[2]/div/div[1]/div/div/div/span"));
.isEmpty())
使用org.openqa.selenium.support.ui.ExpectedConditions
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public WebDriverWait waitSec(WebDriver driver, int sec) {
return new WebDriverWait(driver, sec);
}
public WebElement clickableByXpath(String xpath, int sec) {
WebElement element = waitSec(driver, sec).until(ExpectedConditions.elementToBeClickable(By.xpath(xpath)));
return element;
}
public WebElement clickableById(String id, int sec) {
WebElement element = waitSec(driver, sec).until(ExpectedConditions.elementToBeClickable(By.id(id)));
return element;
}
public WebElement visibleById(String id, int sec) {
WebElement element = waitSec(driver, sec).until(ExpectedConditions.visibilityOfElementLocated(By.id(id)));
return element;
}
public WebElement visibleByXpath(String xpath, int sec) {
WebElement element = waitSec(driver, sec).until(ExpectedConditions.visibilityOfElementLocated(By.xpath(xpath)));
return element;
}
// custom ExpectedCondition
public ExpectedCondition<Boolean> elementNotVisible(String xpath) {
return ExpectedConditions.not(ExpectedConditions.visibilityOfElementLocated(By.xpath(xpath)));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.