处理Selenium中的弹出登录框

时间:2015-03-26 05:45:54

标签: java junit selenium-webdriver

如何处理Java和Selenium中的弹出登录框?我使用http://espn.go.com"在弹出框中签名"但是我一直都是

org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":".//*[@id='login-title']"}

这是我的测试代码

@Test
    public void testLogin(){    
        espn().navigation().signInBtn();
        espn().login().verifyLoginPage(" Log In");
        espn().login().enterUserName("test");
        espn().login().enterPassword("test");
        espn().login().clickLogInBtn();
        espn().login().verifyLoginError("Email Address and password were not found. Please try again.");
    }

1 个答案:

答案 0 :(得分:0)

用户名和密码字段位于' iframe'。 Selenium无法找到帧中存在的元素。因此,我们需要将驱动程序切换到框架并识别该框架中存在的元素。 首先使用 driver.switchTo()。frame(By.name(""));

将驱动程序切换到框架

现在尝试识别用户名和密码。输入密码和用户名后,请点击“登录”。

现在再次使用" driver.switchTo()将驱动程序切换为默认内容.defaultContent()"这将使Selenium与框架外的元素进行交互。