场景:对网页的表单进行自动填写并提交,如登录框,和文章http://blog.csdn.net/fjssharpsword/article/details/51480475类似,不同的是这次button按钮没有id值和name值,只能通过value来获取。

Htmlunit官网:http://htmlunit.sourceforge.net/ 可下载包

代码:

package ebay;import java.io.IOException;
import java.net.MalformedURLException;import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.DomElement;
import com.gargoylesoftware.htmlunit.html.DomNodeList;
import com.gargoylesoftware.htmlunit.html.HtmlButton;
import com.gargoylesoftware.htmlunit.html.HtmlButtonInput;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlPasswordInput;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;public class GGManage {public static void main(String[] args){String sUrl="IP";//网址//webclient设置WebClient webClient = new WebClient(BrowserVersion.CHROME); //创建一个webclient  webClient.getOptions().setJavaScriptEnabled(true); // 启动JS         webClient.getOptions().setUseInsecureSSL(true);//忽略ssl认证            webClient.getOptions().setCssEnabled(false);//禁用Css,可避免自动二次请求CSS进行渲染         webClient.getOptions().setThrowExceptionOnScriptError(false);//运行错误时,不抛出异常    webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);webClient.setAjaxController(new NicelyResynchronizingAjaxController());// 设置Ajax异步      //登录try {HtmlPage page = (HtmlPage) webClient.getPage(sUrl);HtmlForm form=page.getForms().get(0);//page.getFormByName("");HtmlTextInput  txtUName = (HtmlTextInput )form.getInputByName("UserName"); //用户名text框txtUName.setValueAttribute("name");HtmlPasswordInput txtPwd = (HtmlPasswordInput)form.getInputByName("Password");//密码框txtPwd.setValueAttribute("password");//submit没有name,只有class和value属性,通过value属性定位元素HtmlSubmitInput submit=(HtmlSubmitInput) form.getInputByValue("登 录");page = (HtmlPage) submit.click();//登录进入webClient.waitForBackgroundJavaScript(10000);//等待1秒System.out.println(page.asText());}catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}

HtmlUnit自动填写表单并提交相关推荐

  1. 让一个网页打开的同时自动为另一个网页自动填写表单并提交

    让一个网页打开的同时自动为另一个网页自动填写表单并提交   if  you  use  "window.open"  to  open  the  window,you  can  ...

  2. c语言自动填表chrome网页,Form Filler:自动填写表单

    Form Filler的开发背景 用户在使用Chrome浏览网页的时候经常会遇到一些需要用户填写的网页表单,这些表单中一般都包括个人姓名.联系方式等信息,而这些信息对于同一个用户来说一般都是一样的,每 ...

  3. javascript 自动填写表单

    在访问某些站点时,常常发现要填写一些没有实际意义但又必须得重复填写的表单,而且现在B/S的应用越来越多,下面的方法也许可以让你轻松点. 本文没有什么技术上创新,只要会一点Javascript的技术就可 ...

  4. javascript网页自动填表_javascript 自动填写表单

    在访问某些站点时,常常发现要填写一些没有实际意义但又必须得重复填写的表单,而且现在B/S的应用越来越多,下面的方法也许可以让你轻松点. 本文没有什么技术上创新,只要会一点Javascript的技术就可 ...

  5. c语言写自动填写表单提交,利用C语言实现POST数据包如此简单【模拟网页提交表单】...

    http://www.maben.com.cn/archives/212.html 利用C语言实现POST数据包如此简单[模拟网页提交表单] //*************************** ...

  6. Qt自动填写表单并点击按钮,包括调用js方法

    本篇博客参阅了很多其他大牛的文章,具体找不到了,还望包涵>_< 因为其他博客大都是只有主要代码,对于像我这种菜鸟,根本摸不着头脑,以此想总结一下,帮助新手尽快实现功能... 主要是调用了C ...

  7. JavaWeb -- Session实例 -- 自动登录 和 防止表单重复提交(令牌产生器) MD5码

    1. 自动登录 http://blog.csdn.net/xj626852095/article/details/16825659 2. 防止表单重复提交 表单Servlet //负责产生表单 pub ...

  8. 微信小程序提交后自动清空表单内容

    分析情况 若表单数据非常多,通过value绑定清除会非常麻烦 找不到代码调用form的reset的接口 解决思路 form使用bindreset事件提交数据,而不是使用bindsubmit事件,这样点 ...

  9. 去掉chrome记住密码后自动填充表单的黄色背景

    chrome表单自动填充后,input文本框的背景会变成黄色的,通过审查元素可以看到这是由于chrome会默认给自动填充的input表单加上input:-webkit-autofill私有属性,然后对 ...

最新文章

  1. BAPC2014 Bamp;amp;HUNNU11582:Button Bashing(BFS)
  2. POJ1703带权并查集(距离或者异或)
  3. python二十三:装饰器 ?
  4. java native code_原生代码(native code)
  5. 正则表达式在python中的应用_学习正则表达式在python中的应用
  6. VUE3 项目自定义修改网页标题和图标
  7. Windows Mobile 6.1开发笔记
  8. Linux之旅(1): diff, patch和quilt (下)
  9. VS2017下载 vs2017社区版
  10. 苹果手机如何上传文件到服务器,有限条件下,如何将IPhone手机照片传到Windows电脑中?...
  11. 思科CCNA认证视频 CCNA视频 ccna最新题库 专题 复习资料
  12. 软件体系结构——面向对象风格
  13. 第3章 Hive数据类型
  14. PCB制造常用的13种测试方法,你了解几种?
  15. android 模拟器 横排,超强横向全面评测!且待揭开安卓模拟器迷雾重重
  16. python自相关函数提取基音周期_自相关函数法基音周期提取(matlab版)
  17. 二叉树的前序,中序,后续(非递归版本)
  18. Java和C、C++比较
  19. android hero动画,主动画 (Hero animations)
  20. 进行JUnit单元测试时,报找不到test-dao.xml等配置文件的错误

热门文章

  1. websvn mysql_Centos 5.3 Nginx+php+mysql配置 独立的 Subversion (SVN)服务器
  2. python判断sqlite连接状态_python3 自动识别usb连接状态,即对usb重连的判断方法
  3. apache负载均衡的安装和实现方法
  4. 排序命令: sort, wc, uniq
  5. jquery text html width heigth的用法
  6. inotify+rsync实时同步服务部署
  7. 指定类型的成员XX”不支持实体LINQ。只有初始化,成员单位,和实体导航性能的支持。...
  8. Java实现的简单的WebService服务发布和Client调用例子
  9. [译]Visual Studio 2008 Code Metrics
  10. android boot.img 结构