java-webdriver实现二次免验证码登陆
package com.webdriver;
import java.io.IOException;
import java.util.Scanner;
import java.util.Set;
import org.openqa.selenium.By;
import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
import com.tool.OperateObject;
public class LoginNm {
@Test
public void login() throws InterruptedException, IOException {
String url = "http://xxx/login";
String userName = "xxx";
String pwd = "xxx";
String validateCode;
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get(url);
WebElement userNameId = driver.findElement(By.id("username"));
userNameId.sendKeys(userName);
WebElement pwdId = driver.findElement(By.id("password"));
pwdId.sendKeys(pwd);
// 通过键盘获取验证码,是在控制台输入页面的验证码,不能直接输入到页面去
Scanner sc = new Scanner(System.in);
System.out.print("请输入验证码:");
validateCode = sc.next();
WebElement captchaId = driver.findElement(By.id("captcha"));
captchaId.sendKeys(validateCode);
WebElement submit_btn = driver.findElement(By.className("submit_btn"));
submit_btn.click();
Cookie c = driver.manage().getCookieNamed("JSESSIONID");
OperateObject.writeObjectToFile(c);
driver.close();
// Set<Cookie> cookie = driver.manage().getCookies();
// driver.manage().deleteAllCookies();
// for(Cookie c : cookie) {
// OperateObject.writeObjectToFile(c);
// }
}
@Test
public void testReLogin() {
String url = "http://xxx/login";
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get(url);
driver.manage().deleteAllCookies();
driver.manage().addCookie((Cookie)OperateObject.readObjectFromFile());
driver.get("http://xxx");
// driver.close();
}
}