繁体   English   中英

Selenium 等到预期条件

[英]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)));
}

请参阅https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.ZFC35FDC70D5FC69D269883A822CA7

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM