我正在获取StaleElementReferenceException。在以下情况下,我该如何解决此问题

时间:2020-04-26 11:41:24

标签: selenium

''' System.setProperty(“ webdriver.chrome.driver”,“ C://Users//NaqDaq//Downloads//chromedriver_win32//chromedriver.exe”); WebDriver驱动程序=新的C​​hromeDriver();

    driver.manage().window().maximize();
    driver.manage().deleteAllCookies();

    driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

    driver.get("https://www.amazon.com");

    List<WebElement> linksList = driver.findElements(By.tagName("a"));
    linksList.addAll(driver.findElements(By.tagName("img")));

    System.out.println("The full size of Links and Images are: " + linksList.size());

    List<WebElement> activeLinks = new ArrayList<WebElement>();

    for(int i=0; i<linksList.size(); i++) {
        //System.out.println(linksList.get(i).getAttribute("href"));
        if(linksList.get(i).getAttribute("href") != null) {
            activeLinks.add(linksList.get(i));
        }
    }

    System.out.println("The active links and images are--->" + activeLinks.size());

'''

1 个答案:

答案 0 :(得分:0)

Vishal,

尝试下面的代码,它对我有用。

@Test(enabled = true)
public static void amazonActiveLinks() {

    // Browser Initializing
    System.setProperty("webdriver.gecko.driver", "C:\\Software\\geckodriver-v0.19.0-win64\\geckodriver.exe");

    driver = new FirefoxDriver();

    driver.manage().window().maximize();
    driver.manage().deleteAllCookies();

    driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

    driver.get("https://www.amazon.com");

    List<WebElement> linksList = driver.findElements(By.tagName("img"));
    linksList.addAll(driver.findElements(By.tagName("a")));
    System.out.println("The full size of Links and Images are: " + linksList.size());

    String url;
    List<WebElement> activeLinks = new ArrayList<WebElement>();

    for (WebElement link : linksList) {
        url = link.getAttribute("href");
        if (url != null || url != "") {
            activeLinks.add(link);
        }
    }
    System.out.println("The active links and images are--->" + activeLinks.size());

}