首页  >  文章  >  Java  >  Selenium 如何等待页面加载

Selenium 如何等待页面加载

Linda Hamilton
Linda Hamilton原创
2024-09-30 06:10:031002浏览

Selenium How To Wait Page Loading

我正在尝试使用 Selenium 创建一个应用程序。我的功能如下。从某些下拉菜单中进行选择后,页面上会出现带有“加载”类的动画,在此期间所有元素都会被删除,然后在加载完成后重新添加。我设法按照我分享的方式处理这个问题,但我相信有一种更有效的方法来做到这一点。你能帮我一下吗?

selectElement:使用 ul 和 li 创建的菜单定义了 JavaScript 事件。

optionElement:在 selectElement 部分中进行选择后,将加载 select 内的选项,并检查它们是否已加载。

optionToSelect:由 selectElement 中的 li 元素组成。

isLoadingExpected:进行一些选择后,页面上会出现加载动画,我无法阻止。

这是视频和我想做的事情(出于隐私原因进行了模糊处理):https://streamable.com/p47d93

selectItem(Elements.xxx.xPath, Elements.xxxOptions.xPath, aaa.bbb.xPath, 0);

`public static void selectItem(String selectElement, String optionElements, String optionToSelect, int isLoadingExpected) throws Exception {
WebDriverWait waitElement = new WebDriverWait(chromeDriver, Duration.ofSeconds(10));

    if (isLoadingExpected == 1) {
        waitElement.until(ExpectedConditions.visibilityOfElementLocated(By.className("loading")));
        waitElement.until(ExpectedConditions.invisibilityOfElementLocated(By.className("loading")));
    }

    WebElement selectWebElement = waitElement.until(ExpectedConditions.elementToBeClickable(By.xpath(selectElement)));
    waitElement.until(ExpectedConditions.numberOfElementsToBeMoreThan(By.xpath(optionElements), 1));
    selectWebElement.click();

    WebElement optionWebElement = waitElement.until(ExpectedConditions.elementToBeClickable(By.xpath(optionToSelect)));
    optionWebElement.click();
}`

以上是Selenium 如何等待页面加载的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn