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();
}

}

posted on 2019-06-28 15:37  不要着急再休息一会  阅读(210)  评论(0编辑  收藏  举报

导航