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());

 

你可能感兴趣的:(htmlunit 校验验证码)