有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

获取java。util。尝试使用selenium webdriver和java处理多个浏览器窗口时出现NoTouchElementException

我正在尝试使用selenium webdriver处理多个浏览器窗口,但使用java。util。没有什么例外。一周前,这段代码运行良好,但现在在试图切换到第三个窗口时,代码中出现了问题

我在网上看到的问题String Third_window = iterate.next();

注意:这段代码一周前运行正常

  public class Firefox {
        public static WebDriver driver;

        public static void main(String[] args) throws InterruptedException {
            // TODO Auto-generated method stub
            System.setProperty("webdriver.gecko.driver",
                    "C:\\Users\\singhais\\Documents\\Selenium Prerequisites\\geckodriver.exe");
            driver = new FirefoxDriver();
            driver.get("https://www.hdfcbank.com/");
            driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

            // First window
            System.out.println("GettingID for first Window");
            Set<String> win = driver.getWindowHandles();
            Iterator<String> iterate = win.iterator();

            String first_window = iterate.next();
            System.out.println(first_window);
            driver.findElement(By.xpath("//*[@id='element2']/div[1]/div[3]/div[2]/a/img")).click();

            // second window
            System.out.println("GettingID for second Window");
            win = driver.getWindowHandles();
            iterate = win.iterator();

            first_window = iterate.next();
            System.out.println(first_window);
            System.out.println(driver.getTitle());
            String second_window = iterate.next();
            System.out.println(second_window);
            driver.switchTo().window(second_window);
            Thread.sleep(10000);
            System.out.println(driver.getTitle());

            driver.findElement(By.xpath("//*[@id='wrapp']/div[2]/div[3]/div[1]/div/div[2]/ul/li[1]/a")).click();

            // ThirWindow
            System.out.println("GettingID for third Window");
            win = driver.getWindowHandles();
            iterate = win.iterator();
            first_window = iterate.next();
            System.out.println(first_window);
            second_window = iterate.next();
            System.out.println(second_window);
            String Third_window = iterate.next();
            System.out.println(Third_window);
            driver.switchTo().window(Third_window);
            Thread.sleep(10000);
            System.out.println(driver.getTitle());

            Thread.sleep(3000);
            driver.close();

            driver.switchTo().window(second_window);

            Thread.sleep(3000);
            driver.close();

            driver.switchTo().window(first_window);
            driver.findElement(By.xpath("html/body/div[1]/div[1]/div[1]/div/div[2]/ul/li[2]/a")).click();

            Thread.sleep(6000);
            driver.close();

        }

    }

此代码与下面给定链接中提到的问题不同。在我的问题中,当我试图导航到最后一个窗口时,我得到了NoTouchElementException


共 (1) 个答案

  1. # 1 楼答案

    使用Thread.sleep(3000);你的程序对我来说很好。我只是在等下一个窗口

            System.out.println("GettingID for third Window");
            Thread.sleep(3000);
            win = driver.getWindowHandles();
            iterate = win.iterator();
    

    请查收并告诉我