selenium WebDriver对cookie进行处理绕过登录验证码
上一篇 /
下一篇 2016-07-29 17:24:56
/ 个人分类:selenium
大家经常纠结于UI自动化测试过程中验证码如何处理!!
比较简单的思路有:让开发在测试环境把验证码的功能屏蔽掉、让开发给你做一个万能验证码(比如1234)!
今天本文在这里介绍一个另辟蹊径的方案,绕过网站的登录验证码。首先需要手动登录一次你的测试网站,去chrome的F12里获取这个网站的cookie信息,找到对应的保存登录信息的cookie,记录下来备用,接下来再代码中将上述cookie信息通过webdriver写入的自动化脚本所弹出的浏览器中,这样服务器就会认为你已经登录过了,从而达到绕过登录环节的目的。
代码参考如下:
packagecn.testfan.test_selenium;
importjava.util.Set;
importjava.util.concurrent.TimeUnit;
importorg.openqa.selenium.Cookie;
importorg.openqa.selenium.WebDriver;
importorg.openqa.selenium.chrome.ChromeDriver;
publicclassTestCookieWithSelenium{
publicstaticvoidmain(String[] args)throwsInterruptedException{
WebDriver driver =newChromeDriver();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.get("http://localhost:8080/javamall");driver.manage().deleteAllCookies();Cookie ck =newCookie("JSESSIONID","9AF1605B9B8020042522F557F903F8D1","/javamall/");driver.manage().addCookie(ck);driver.get("http://localhost:8080/javamall");driver.manage().window().maximize();
Thread.sleep(2000);
Set cookies = driver.manage().getCookies();
System.out.println(String.format("Domain -> name -> value -> expiry -> path"));for(Cookie c : cookies)
System.out.println(String.format("%s -> %s -> %s -> %s -> %s", c.getDomain(), c.getName(), c.getValue(),
c.getExpiry(), c.getPath()));
driver.close();
driver.quit();
}
}
收藏
举报
TAG:
Cookie
cookie
验证码
登录验证码