Я получаю StaleElementReferenceException. Как я могу решить эту проблему в следующем случае - PullRequest
0 голосов
/ 26 апреля 2020

'' 'System.setProperty ("webdriver. chrome .driver", "C: //Users//NaqDaq//Downloads//chromedriver_win32//chromedriver.exe"); Драйвер WebDriver = новый ChromeDriver ();

    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 голосов
/ 27 апреля 2020

Вишал,

Попробуйте приведенный ниже код, у меня это сработало.

@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());

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...