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");// 必须先访问一次测试页面,程序自动创建一次cookiedriver.manage().deleteAllCookies();// 删除cookie里的内容Cookie ck =newCookie("JSESSIONID","9AF1605B9B8020042522F557F903F8D1","/javamall/");// 初始化已经保存了登录信息的cookiedriver.manage().addCookie(ck);// webdriver添加cookiedriver.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 验证码 登录验证码

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2019-07-17  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 39066
  • 日志数: 24
  • 建立时间: 2016-05-27
  • 更新时间: 2016-07-29

RSS订阅

Open Toolbar