验证码,相信每个写web自动化测试的同学来说,都是个头疼的事,怎么办呢?
方法还是有的,先说今天这种方式,通过cookie绕过登录验证码
思路:
需要你通过抓包工具抓到你登录的cookie
接下来开始动手。
1、开启Fiddler 工具,像这样!
2、通过浏览器登录正常登录百度账号。像这样!
3、通过Fiddler获取登录请求的Cookie。找到Host为“passport.baidu.com”的URL,在右侧窗口查看该请求的Cookie。
然后,找到重要的两个参数“BAIDUID”和“BDUSS”。
4、直接上代码
package seleniumapi;import org.openqa.selenium.Cookie;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.testng.annotations.Test;import org.testng.annotations.BeforeClass;import org.testng.annotations.AfterClass;public class LoginWithCookie { WebDriver driver; @BeforeClass public void beforeClass() { System.setProperty("webdriver.chrome.driver", "chromedriver.exe"); driver=new ChromeDriver(); } @Test public void testLoginWithCookie() { driver.get("https://www.baidu.com/"); driver.manage().window().maximize(); Cookie cookie=new Cookie("BAIDUID", "你的账号cookie"); driver.manage().addCookie(cookie); Cookie cookie1=new Cookie("BDUSS", "你的账号cookie"); driver.manage().addCookie(cookie1); driver.navigate().refresh(); } @AfterClass public void afterClass() {// driver.quit(); }}
首先,访问百度首页,处于未登录状态。
然后,通过Selenium所提供add_cookie()方法添加Cookie信息。
运行结果如图: