首页 > 解决方案 > 忽略硒中的加载

问题描述

我正在用java编写一个硒代码,它执行以下操作。

  1. 打开页面。
  2. 关闭促销横幅。
  3. 从左侧检查一个类别。
  4. 点击产品。
  5. sysout名称,返回上一页。
  6. 点击下一个产品。

目前,代码运行良好。但是我想知道当我回去时,有没有办法可以忽略图像上正在等待的微调器,直接单击并继续?'因为这是花费我大量时间的步骤。这是我所说的屏幕。

在此处输入图像描述

这是我的代码。

import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class tesCode {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/chromedriver");
        WebDriver driver = new ChromeDriver();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.manage().window().maximize();
        driver.get("https://www.ediblearrangements.com/fruit-arrangements");
        driver.findElement(By.id("imgClose")).click();
        WebDriverWait wait = new WebDriverWait(driver, 20);
        List<WebElement> catList = driver.findElements(By.xpath("/descendant::a[@ftype='id']"));
        for (int cat = 0; cat < 2; cat++) {
            driver.findElements(By.xpath("/descendant::a[@ftype='id']")).get(cat).click();
            List<WebElement> prodList = driver
                    .findElements(By.xpath("//div[@id='divArrangementList']/ul//li/descendant::a[1]"));
            for (int i = 0; i < 3; i++) {
                prodList = driver.findElements(By.xpath("//div[@id='divArrangementList']/ul/li/descendant::a[1]"));
                wait.until(ExpectedConditions.visibilityOf(prodList.get(i)));
                if (prodList.get(i) != null) {
                    prodList.get(i).click();
                    driver.findElement(By.className("arrnamewithsup")).getText();
                    driver.navigate().back();
                }
            }
        }
        driver.close();
    }
}

还有没有其他方法可以快速完成。

谢谢

标签: javaselenium

解决方案


不,默认情况下 - selenium 将等待页面加载。我们无法控制它。我们可以添加等待条件,仅用于需要额外的等待 - 而不是减少它们。


推荐阅读