驗證碼,相信每個寫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信息。
運行結果如圖: