【问题标题】:I am getting StaleElementReferenceException. how can i resolve this issue in below case我收到了 StaleElementReferenceException。在以下情况下我该如何解决这个问题
【发布时间】:2020-08-09 21:35:23
【问题描述】:

''' System.setProperty("webdriver.chrome.driver", "C://Users//NaqDaq//Downloads//chromedriver_win32//chromedriver.exe"); WebDriver driver = new 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());

'''

【问题讨论】:

  • 使用上面的代码我试图找到损坏的链接

标签: selenium


【解决方案1】:

维沙尔,

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

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

}

【讨论】:

  • 感谢您回复 Prashanth,但在我的系统中,TestNG 也无法正常工作,当我执行脚本时,控制台出现以下错误:-
  • [RemoteTestNG] 在线程“main”java.lang.BootstrapMethodError 中检测到 TestNG 版本 7.0.1 异常:java.lang.NoClassDefFoundError:com/google/inject/Stage at org.testng.internal.Configuration .(Configuration.java:33) 在 org.testng.TestNG.init(TestNG.java:216) 在 org.testng.TestNG.(TestNG.java:200) 在 org.testng.remote。 AbstractRemoteTestNG.(AbstractRemoteTestNG.java:17) 在 org.testng.remote.support.RemoteTestNG6_12.(RemoteTestNG6_12.java:18)
  • 你能帮帮我吗
  • 删除@Test注解并添加以下代码 public static void main(String[] args){ amazonActiveLinks(); } }
猜你喜欢
  • 2023-01-07
  • 2021-08-19
  • 2010-10-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 2020-03-25
  • 2020-02-14
相关资源
最近更新 更多