如何在Selenium中等待元素出现?


我们可以在Selenium Webdriver中等待元素出现。这可以通过同步机制来实现。我们有一个明确的等待条件,在执行下一步之前,我们可以暂停或等待元素出现。

显式等待在抛出异常之前,会等待一段时间。为了验证是否存在元素,我们可以使用预期条件presenceOfElementLocated.

示例

代码实现。

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class ElementPresenceWait{
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      String url = "https://tutorialspoint.com/about/about_careers.htm";
      driver.get(url);
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      // identify element and click()
      WebElement l=driver.findElement(By.linkText("Terms of Use"));
      l.click();
      // explicit wait condition
      WebDriverWait w = new WebDriverWait(driver,3);
      // presenceOfElementLocated condition
      w.until(ExpectedConditions.presenceOfElementLocated (By.cssSelector("h1")));
      // get text of element and print
      System.out.println("Element present having text:" + l.getText());
      driver.quit()
   }
}

输出

更新于: 15-9-2023

29K+浏览量

开启您的 事业

完成课程并获得认证

开始
广告