模拟登陆csdn

今天偶然了解到了Selenium,是一个用于Web应用程序测试的工具,就像真正的用户在操作一样,支持大部分常用浏览器。我花了几个小时的时间,写了一个模拟登陆csdn的单元测试demo,原理是调用浏览器的内核api,例子仅供学习参考,有问题欢迎指正!
开发环境 eclipse jdk1.7 用到的相关jar包
selenium-server-standalone-2.25.0.jar
junit4.0.jar
chromedriver.exe

/** 
 * 登录账号信息
 */
public class User {
    private String webBrowserPath;  //浏览器引擎本地路径
    private String username;   //登录账号
    private String password;//登录密码
    private String loginUrl;//登录url
    public String getWebBrowserPath() {
        return webBrowserPath;
    }
    public void setWebBrowserPath(String webBrowserPath) {
        this.webBrowserPath = webBrowserPath;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getLoginUrl() {
        return loginUrl;
    }
    public void setLoginUrl(String loginUrl) {
        this.loginUrl = loginUrl;
    }
    @Override
    public String toString() {
        return "User [webBrowserPath=" + webBrowserPath + ", username=" + username + ", password=" + password
                + ", loginUrl=" + loginUrl + "]";
    }
}
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
/** 
 *模拟谷歌浏览器登录csdn
 */
public class ChromeTest {
    private String webBrowserPath = "E://test//chromedriver.exe";
    private WebDriver driver ;
    private String loginUrl = "https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn";
    private String username = "";//登录账号
    private String password = "";//登录密码
    private User user = new User();

    //设置登录地址、账号、密码、浏览器本地引擎地址
    @Before
    public void init() {
        user.setLoginUrl(loginUrl);
        user.setPassword(password);
        user.setUsername(username);
        user.setWebBrowserPath(webBrowserPath);
        System.setProperty("webdriver.chrome.driver",user.getWebBrowserPath());
        driver = new ChromeDriver();
    }
    //登录成功之后推出
    @After
    public void quitDriver() {
        if(null!=driver) {
            driver.quit();
        }
    }
    //等一秒
    public void waitForSecond() {
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) 
        {
            e.printStackTrace();
        }
    }
    //登录
    @Test
    public void login() {
        try {
            driver.get(user.getLoginUrl());//打开登录地址
            waitForSecond();
            WebElement userElement = driver.findElement(By.id("username"));//获取账号标签
            userElement.sendKeys(user.getUsername());//输入账号
            waitForSecond();
            WebElement passElement = driver.findElement(By.id("password"));//获取密码标签
            passElement.sendKeys(user.getPassword());//输入密码
            waitForSecond();
            WebElement login = driver.findElement(By.className("logging"));//获取登录按钮
            login.click();//点击登录
            waitForSecond();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

猜你喜欢

转载自blog.csdn.net/u011915230/article/details/68944624