web自动化测试中登陆需验证码是很大的一个困扰。现推荐一种简单的避开验证码登陆的方式,先代码进入登录页,人工输入验证码登录后浏览器自动保存cookie,再在新的标签中登录。
具体代码如下:
1 public void yiCheCarSourceManageData(HashMap<String, String> data) throws Exception{ 2 //打开第一个页面,请手动输入验证码 3 driver.get(CommonBean.YICHEURL); 4 //输入用户名密码(需自己定位输入,也可去掉该行代码手动输入 5 YiCheLogin.yiCheLoginFun(username, password); 6 //使用快捷键Ctrl+t,打开新标签 7 Actions actionOpenLinkInNewTab = new Actions(TestBase.driver); 8 actionOpenLinkInNewTab.keyDown(Keys.CONTROL).sendKeys("t").keyUp(Keys.CONTROL).perform(); 9 //浏览器等待10秒,在这10秒内手动输入验证码并点击登录 10 Thread.sleep(10 * 1000); 11 //切换到新打开的标签 12 String currentWindow = driver.getWindowHandle(); 13 Set<String> handles = driver.getWindowHandles(); 14 handles.remove(currentWindow); 15 if (handles.size() > 0) { 16 // 定位窗口 17 driver.switchTo().window(handles.iterator().next()); 18 } 19 //新标签中,系统自动登录网站 20 driver.get(CommonBean.YICHEURL); 21 Thread.sleep(5 * 1000); 22 }