1

我的网站要求用户登录系统。当用户在输入用户名和密码后单击登录按钮时,主登录窗口会打开一个新的浏览器窗口并在其中显示主页。这在手动执行时工作得非常好,但是当我尝试使用 Webdriver/Java 运行类似的脚本时,不仅身份验证失败,而且 webdriver 打开 2 个浏览器弹出窗口而不是一个。我在这里做错了什么?我在下面分享了我的代码。

我在带有 Eclipse IDE 的 Windows 8 和 IE 10 上使用 internetexplorerdriver。

公共类应用程序{

public static void main(String[] args) {

    WebDriver driver = new InternetExplorerDriver();

    driver.get("http://cmdlhrstg04/QAWorkSpace/datlogin.asp");
    driver.findElement(By.id("vchLogin_Name")).sendKeys("xyz");
    driver.findElement(By.id("vchPassword")).sendKeys("xx");
    driver.findElement(By.id("LoginImg")).click();


}

}

4

1 回答 1

0

由于还有另一个窗口打开,您需要在新的驱动程序窗口中处理事件

//Store the current window handle
        String winHandleBefore = driver.getWindowHandle();

        //Perform the click operation that opens new window
             driver.findElement(By.id("LoginImg")).click();

        //Switch to new window opened
        for(String winHandle : driver.getWindowHandles()){
            driver.switchTo().window(winHandle);
        }

        // Perform the actions on new window
      Do your homepage actions 
            //Close the new window, if that window no more required
    driver.close();

        //Switch back to original browser (first window)

        driver.switchTo().window(winHandleBefore);


        //continue with original browser (first window) 
        }
于 2013-04-25T13:41:12.090 回答