如何检查用户名是否有效

时间:2015-03-18 12:28:24

标签: selenium-webdriver testng

实际上我试图在登录页面中检查用户名和密码是否正确。 所以我编写了即将登录的代码。检查用户是否在注销按钮可见时有效。

但我的陈述不起作用

driver.findElement(By.id("username")).sendKeys(sUsername);
driver.findElement(By.id("password")).sendKeys(sPassword);
driver.findElement(By.name("login")).click();


boolean logvisibile = driver.findElement(By.xpath(".//*[@id='account']/ul/li[2]/a")).isDisplayed();


Thread.sleep(1000);

if(logvisibile == true)

{
System.out.println("Succesfull");

}else

{
System.out.println("Failed");

}
}

**输出:

  

失败:测试(“testuser_1”,“测试@ 123”)   org.openqa.selenium.NoSuchElementException:无法找到元素:   {“method”:“xpath”,“selector”:“.//* [@ id ='account'] / ul / li [2] / a”}命令   持续时间或超时:10.06秒有关此错误的文档,   请访问:http://seleniumhq.org/exceptions/no_such_element.html **

1 个答案:

答案 0 :(得分:0)

我认为即使在单击“登录”之前,您也在检查LogOut按钮的可见性。 (假设//*[@id='account']/ul/li[2]/a是您的退出按钮)

boolean logvisibile = driver.findElement(By.xpath(".//*[@id='account']/ul/li[2]/a")).isDisplayed();
driver.findElement(By.name("login")).click();

首先点击登录,然后检查可见性。

driver.findElement(By.name("login")).click();
boolean logvisibile = driver.findElement(By.xpath(".//*[@id='account']/ul/li[2]/a")).isDisplayed();

也无需执行此操作 - if(logvisibile == true)您可以执行if(logvisible)

编辑:检查此解决方案的登录方案,完全正常。

    public static void main(String[] args) {

    driver = new FirefoxDriver();
    driver.navigate().to("http://newtours.demoaut.com/mercurysignon.php");

    WebElement username = driver.findElement(By.cssSelector("input[name='userName']"));
    username.sendKeys("dharam111");

    WebElement password = driver.findElement(By.cssSelector("input[name='password']"));
    password.sendKeys("password");

    WebElement loginBtn = driver.findElement(By.cssSelector("input[name='login']"));
    loginBtn.click();

    List<WebElement> objLogOutLink = driver.findElements(By.cssSelector("a[href*='signoff']"));
    if(objLogOutLink.size() > 0){
        if(objLogOutLink.get(0).getText().contains("SIGN-OFF")){
            System.out.println("Login successful...Success");
        }
    }
    else{
        System.out.println("Login Failed.");
    }

}