gpt4 book ai didi

java - 我想要一个方法,可以等待页面中的所有 web 元素在 java 中加载(Selenium webdiver)

转载 作者:太空宇宙 更新时间:2023-11-04 12:32:21 25 4
gpt4 key购买 nike

//I have used waits like 
Thread.sleep(2000);

driver.manage().timeouts().pageLoad(100,TimeUnit.seconds);

driver.manage().timeouts().explicitlywait(10,TimeUnit.seconds);

WebDriverWait wait = new WebDriverWait(driver,30);
wait.until(ExpectedConditions.visibilityof(element));

我担心的是在网格中运行大量脚本时 由于等待问题,有些通过,有些失败 因此,我想要一个可以处理此类场景的用户定义的方法,即一种等待页面所有元素加载的方法,以便可以有效地与显示“无法定位元素”或“无法单击某个元素,其他元素将收到点击”等错误的方法一起使用。/

最佳答案

你永远不应该使用计时器来等待页面的加载,因为你永远不知道渲染的速度有多快,那么在这种情况下,我建议你两种方法:

  1. 使用Selenium的waitFor方法,驱动程序将等待直到预期的元素出现,您可以设置默认等待的最长时间,默认为6秒。对于这种方法,您需要知道哪个元素意味着页面已完全加载

    waitFor(ExpectedConditions.presenceOfElementLocated(By.id("yourExpectedIdElement")));
  2. 如果您需要检查所有 JS 代码是否已加载,您还可以在 document.ready() JS 中添加一行,其中向正文添加隐藏元素,然后是您将在测试中等待的属性。

    $document.ready(){
    //Add a hidden element to the body
    }

    waitFor(ExpectedConditions.presenceOfElementLocated(By.id("createdElement")));

关于java - 我想要一个方法,可以等待页面中的所有 web 元素在 java 中加载(Selenium webdiver),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37718009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com