java - 如何等待页面加载后再执行下一步操作?

标签 java selenium selenium-webdriver xpath webdriver

我的页面包含高级搜索链接,其中填写搜索条件后,会出现一个加载器,它根据搜索条件加载我的结果,接下来我需要执行删除。

我的脚本运行速度如此之快,以至于它不会等待加载程序消失并单击删除,这不应该发生,因为它们没有与我的搜索条件匹配的记录。

我使用的代码-

driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

任何可以帮助我等待这种过程的人。

如有任何澄清,请告诉我。

最佳答案

由于填充搜索条件后会出现一个加载程序,它会根据搜索条件加载您的结果,然后您需要执行删除,因此我们有两种方法来解决此问题。

  • 在第一种方法中,我们将等待加载程序消失,然后单击想要的WebElement删除。我们将通过 WebDriverWait 实现此方法,并将 ExpectedConditions 设置为 invisibilityOfElementLocated,如下所示:

    WebDriverWait wait10 = new WebDriverWait(driver, 10);
    wait10.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("xpath_of_loader")));
    driver.findElement(By.xpath("xpath_delete_button")).click();
    
  • 在第二种方法中,我们将等待 WebElement 作为删除按钮可单击,然后单击想要WebElement删除。我们将通过 WebDriverWait 实现此方法,并将 ExpectedConditions 设置为 elementToBeClickable,如下所示:

    WebDriverWait wait11 = new WebDriverWait(driver, 10);
    WebElement element11 = wait11.until(ExpectedConditions.elementToBeClickable(By.xpath("xpath_delete_button")));
    element11.click();
    

关于java - 如何等待页面加载后再执行下一步操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45952001/

相关文章:

selenium - 当 Value 属性动态生成时,如何在 Selenium Web 驱动程序中使用 java 从 <input> 标签获取值

java - 如何包含 webstart 应用程序的外部配置

java - Tomcat 中的 conf/web.xml 与 WEB-INF 中的不同是什么?

java - 在 Java 中如何存储 IP

java - 带有 -,::, ( 和 ) 的正则表达式

java webdriver 访问受限站点

java - 需要帮助在java中形成正则表达式

python - selenium.common.exceptions.WebDriverException : Message: 'chromedriver' executable needs to be in PATH error with Headless Chrome

Python Selenium Webdriver - 在指定的一个之后抓取 div

python - 操作系统错误 : [Errno 8] Exec format error with GeckoDriver and Selenium on MacOS