《手把手教你》系列技巧篇(六十四)-java+ selenium自动化测试 - cookie -中篇(详细教程)
1.简介
今天按照原计划宏哥要用实例来给小伙伴或童鞋们来演示一下,如何利用cookie实现跳过验证码进行登录。这个场景是自动登陆。有很多系统的登陆信息都是保存在cookie里的,因此只要往cookie中添加正确的值就可以实现自动登陆了。什么图片验证码、登陆的用例就都是浮云了。而且登录往往就自动化测试的第一步,系统都登录不进去,后边无论是多么高大上都是白扯。因此宏哥拿出一篇文章的篇幅对其进行介绍和分享,希望对你能够有所帮助。
2.Fiddler
2.1IE 、谷歌浏览器抓取HTTPS请求
1.IE 、谷歌浏览器抓取HTTPS请求
Tools -- Options -- HTTPS --勾选 Decrypt HTTPS traffic --点击 OK,直接抓取HTTPS请求,如果抓不到,则设置证书
2.设置证书
Tools -- Options -- HTTPS --勾选 Decrypt HTTPS traffic--点击Actions -- 选择最后一个选项,重置所有证书 --点击确定--然后就一直选择确定就安装成功了。
3.如果查看是否安装成功呢:
Tools -- Options -- HTTPS --勾选 Decrypt HTTPS traffic--点击Actions--Open Windows certificate manage--操作--查找证书--输入fiddle--看是否要相关的证书,
如果有找到,则说明安装成功,重启fiddler和浏览器则可以抓包成功!
3.自动化实践
3.1抓包
1.开启Fiddler 工具,如下图所示:
2.通过浏览器登录正常登录百度账号。如下图示
3.通过Fiddler获取登录请求的Cookie。找到Host为“passport.baidu.com”的URL,在右侧窗口查看该请求的Cookie。
4.然后,找到重要的两个参数“BAIDUID”和“BDUSS”。
3.2代码设计
3.3参考代码
package lessons; import org.openqa.selenium.By; import org.openqa.selenium.Cookie; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; /** * @author 北京-宏哥 * * @公众号:北京宏哥 * * 《手把手教你》系列技巧篇(六十三)-java+ selenium自动化测试 - cookie -中篇(详细教程) * * 2022年1月26日 */ public class CookieBaidu { public static void main(String[] args) throws InterruptedException { System.setProperty("webdriver.gecko.driver", ".\\Tools\\chromedriver.exe"); //指定驱动路径 WebDriver driver = new ChromeDriver (); driver.get("http://www.baidu.com"); driver.manage().window().maximize(); Thread.sleep(5000); System.out.println(driver.manage().getCookies()); // 通过fiddler抓包工具,找到Host为“passport.baidu.com”的URL,在右侧窗口查看该请求的Cookie, // 找到重要的两个参数“BAIDUID”和“BDUSS” Cookie c1 = new Cookie("BAIDUID", "70EB956C3AD6908B86068C5D02205F87:FG=1"); Cookie c2 = new Cookie("BDUSS", "AAAAAAAAAAAAAAAAAAAAAAAAA4X7mEOF-5hM"); driver.manage().addCookie(c1); driver.manage().addCookie(c2); driver.navigate().refresh(); // 获得登录用户名 String username = driver.findElement(By.className("user-name")).getText(); System.out.println("username = " +username); System.out.println(driver.manage().getCookies()); Thread.sleep(6000); System.out.println("browser will be close"); driver.quit(); } }
3.4运行代码
1.运行代码,右键Run AS->Java Appliance,控制台输出,如下图所示:
2.运行代码后电脑端的浏览器的动作,如下小视频所示:
4.小结
这里演示了如何跳过验证码实现登录,如果没有验证码,我们直接就通过用户名和密码登录后,获取cookie后,然后保存cookie后,进行相应的操作(例如接口测试时,后续的接口可能需要cookie或者session、token,这里会在后续的接口部分进行详细讲解,这里就不做赘述了)。好了,今天时间也不早了就分享和讲解到这里。感谢您耐心的阅读!
感谢您花时间阅读此篇文章,如果您觉得这篇文章你学到了东西也是为了犒劳下博主的码字不易不妨打赏一下吧,让博主能喝上一杯咖啡,在此谢过了!
如果您觉得阅读本文对您有帮助,请点一下左下角“推荐”按钮,您的
本文版权归作者和博客园共有,来源网址:https://www.cnblogs.com/du-hong 欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利!
公众号(关注宏哥)                                                                                 客服微信