htmlunit 校验验证码

htmlUnit 校验验证码

直接上代码

 1       String url = "http://www.zycg.gov.cn/";
 2
 3         WebclientUtil webClientUtils = new WebclientUtil();
 4         WebClient webClient = webClientUtils.getWebClient();
 5
 6         HtmlPage page = webClient.getPage(url);
 7
 8         HtmlElement username = page.getFirstByXPath("//*[@id=‘u_name‘]");
 9         HtmlElement password = page.getFirstByXPath("//*[@id=‘u_pwd1‘]");
10         HtmlElement valiCode = page.getFirstByXPath("//*[@id=‘yzm‘]");
11         HtmlImage valiCodeImg = (HtmlImage) page.getFirstByXPath("//*[@id=‘img_random‘]");
12         ImageReader imageReader = valiCodeImg.getImageReader();
13         BufferedImage bufferedImage = imageReader.read(0);
14
15         JFrame f2 = new JFrame();
16         JLabel l = new JLabel();
17         l.setIcon(new ImageIcon(bufferedImage));
18         f2.getContentPane().add(l);
19         f2.setSize(100, 100);
20         f2.setTitle("验证码");
21         f2.setVisible(true);
22
23         String valicodeStr = JOptionPane.showInputDialog("请输入验证码:");
24         f2.setVisible(false);
25         HtmlForm submit = page.getFirstByXPath("//*[@id=‘submitForm‘]");
26
27         username.click();
28         username.type("zhongkeruan");
29         password.click();
30         password.type("62570007");
31         valiCode.click();
32         valiCode.type(valicodeStr);
33
34
35         ScriptResult result = page.executeJavaScript("dl()");
36         page = (HtmlPage) result.getNewPage();
37
38         if(page.asText().contains("下一页")){
39             System.out.println("登录成功");
40         }else{
41             System.out.println("登录失败");
42         }
43         System.out.println(page.asText());
时间: 2024-08-11 17:56:14

htmlunit 校验验证码的相关文章

在JSP中动态生成随机验证码,登录时后台校验验证码,以及如何避免同一个验证码被重复提交爆破密码

只需几步就可以生成动态随机的验证码,最终效果如下图: 一 前台显示页面login.jsp 其中验证码显示的是一张图片,链接指向的是生成验证码的servlet,同时点击图片后触发changeImg()这个js函数,使其动态生成一个新的验证码,这个函数中的参数t=Math.random()并不会参与验证码的生成,它的作用仅仅只是表示每次提交的并不是同一个请求,需要单独处理,完整的login.jsp代码如下: <%@ page language="java" contentType=&

案例17-validate自定义校验规则校验验证码是否输入正确

1 自定义校验规则代码 <script type="text/javascript"> //使用validate插件进行表单的校验 $(function(){ $("#myform").validate({ rules:{ checkCode:{ "required":true, "checkVerificationCode":true } }, messages:{ checkCode:{ "requi

利用ajax异步校验验证码(转)

利用ajax异步校验验证码 示例结果如图所示 具体步骤如下: step1: jsp页面及js脚本 [html] view plain copy print? <%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %> <html> <head> <title>form</title> <script type="

C# Ajax 手机发送短信验证码 校验验证码 菜鸟级别实现方法

1.Ajax请求处理页面: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.SessionState; using System.Web.Services; namespace Web.User.Ajax { /// <summary> /// SendCheckcode 的摘要说明 /// </summary> [WebSer

java图形验证码生成工具类及web页面校验验证码

最近做验证码,参考网上案例,发现有不少问题,特意进行了修改和完善. 验证码生成器: [html] view plain copy print? import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; im

校验验证码 实现登录验证

验证码处理 方式 1.手动处理 2.云打码平台自动识别验证码 实现流程: -1.对携带验证码的页面数据进行抓取 -2.可以将验证码图片进行解析,验证码图片下载到本地 -3.将验证码图片交给第三方进行识别,返回验证码图片上的值 -云打码平台 1.进行注册 注册普通用户和开发者用户 2.登录开发者用户 1.进行示例代码下载(开发文档>>调用示例及最新的DLL>>pythonhttp示例下载) 2.创建一个软件(我的软件>>新的软件) 3.使用示例代码中的源文件代码文件进行修

登陆 数据库查找 以及redis校验验证码

``` //用于生成验证ma const svgCaptcha = require("svg-captcha") //mysql 用于在数据库中查找前端输入的用户名和密码 const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: '12345678', database: 'sys' }); connecti

ThinkPHP3.2.3验证码显示、刷新、校验

显示验证码 首先在Home/Controller下创建一个公共控制器PublicController 1 <?php 2 namespace Home\Controller; 3 4 use Think\Controller; 5 use Think\Verify; 6 7 class PublicController extends Controller 8 { 9 10 /* 生成验证码 */ 11 public function verify() 12 { 13 $config = [ 1

验证码的实现

function _hyz()//换一张函数JS代码 { /* 1. 获取<img>元素 2. 给它的src指向/tools/VerifyCodeServlet */ var img=document.getElementById("imgVerifyCode"); //需要给出一个参数,这个参数每次都不同,这样才能刷新浏览器缓存! img.src = "/tools/VerifyCodeServlet?a="+ new Date().getTime()