简体   繁体   中英

How to valid a login page using Java and Selenium WebDriver?

In my database I have the username = user@javachap.com and password = javachap

If I run the code below, it passes the test although the username and password does not exist in my database.

@Test
public void testLogin()
{
  String username="abc";
  String password="123";
  boolean valueFound=false;
// Check the db
try
{
  pstmt=conn.prepareCall("select * from user where USR_EMAIL=? and USD_PASSWORD=?");
  pstmt.setString(1,username);
  pstmt.setString(2,password);
  rs=pstmt.executeQuery();
  valueFound = rs.next();
}
catch(Exception e)
{
  // report some error
}
public class LoginPageTest extends IntegrationTest {

private HtmlUnitDriver driver;

@Before
public void setup() throws MalformedURLException, UnknownHostException{
    driver = new HtmlUnitDriver(true);
    driver.get(System.getProperty("login.url"));
}

@Test
public void testAuthenticationFailureWhenProvidingBadCredentials(){
    driver.findElement(By.id("username")).sendKeys("fakeuser");
    driver.findElement(By.id("password")).sendKeys("fakepassword");     
    driver.findElement(By.id("login")).click();

    assertTrue(driver.getCurrentUrl().endsWith("failed"));
}

@Test
public void testAuthenticationSuccessWhenProvidingCorrectCredentials(){
    driver.findElement(By.id("username")).sendKeys("validuser");
    driver.findElement(By.id("password")).sendKeys("validpassword");
    driver.findElement(By.id("login")).click();

    assertTrue(driver.getCurrentUrl().endsWith("/<name_of_webapp>/"));
}

}

That's how I do it for example.

EDIT: I just noticed comments. Anyway my code shows how you test the actual login page with Selenium.

public class Ace {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.setProperty("webdriver.chrome.driver", "D://jars//chromedriver.exe"); 
        WebDriver driver = new ChromeDriver();
        driver.get("https://your login url");

        driver.findElement(By.name("username")).sendKeys("enter username");  
        //pay attention here By.name or By.id, see  the page source properly
        driver.findElement(By.name("password")).sendKeys("enter password");

        driver.findElement(By.xpath("//button[@value='login']")).click();

        driver.findElement(By.name("participant")).sendKeys("BLRFC1");
        driver.findElement(By.xpath("//button[@type='submit']")).click();
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM