功能:动态指定js函数,实际上这个效果不是很有用,这里就做一个记录而已,参考代码如下:

package com;
import com.gargoylesoftware.htmlunit.BrowserVersion;import com.gargoylesoftware.htmlunit.ScriptResult;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.DomElement;
import com.gargoylesoftware.htmlunit.html.DomNodeList;
import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.javascript.host.event.Event;
public class EBayHU {public static void main(String[] args) {
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.setAjaxController(new NicelyResynchronizingAjaxController());// 设置Ajax异步try {HtmlPage page=webClient.getPage("url");webClient.waitForBackgroundJavaScript(10000);HtmlElement propic =page.getHtmlElementById("viEnlargeImgLayer_layer_fs");DomNodeList<HtmlElement> picnodes=propic.getElementsByTagName("img");for(int m=0;m<picnodes.size();m++){HtmlElement pic=picnodes.get(m);System.out.println(pic.asXml());//响应事件//Event event=new Event();//event.setEventType(Event.TYPE_KEY_DOWN);//HtmlPage hpm=pic.click(event); //bpic.fireEvent(event);//执行js  String hrefValue = "javascript:add(1,1,'+');";ScriptResult s = page.executeJavaScript(hrefValue);//执行js方法HtmlPage hpm=(HtmlPage) s.getNewPage();//获得执行后的新page对象     webClient.waitForBackgroundJavaScript(10000);HtmlElement lpic=hpm.getHtmlElementById("viEnlargeImgLayer_img_ctr");System.out.println(lpic.asXml());                          } } catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}

HtmlUnit动态执行js函数相关推荐

  1. JDK1.8中如何用ScriptEngine动态执行JS

    JDK1.8中如何用ScriptEngine动态执行JS jdk1.6开始就提供了动态脚本语言诸如JavaScript动态的支持.这无疑是一个很好的功能,毕竟Java的语法不是适合成为动态语言.而JD ...

  2. ScriptEngine--Java动态执行JS脚本

    ScriptEngine--Java动态执行JS脚本 简介 Eval(String script) 描述 实例代码 Put() and Get() 描述 实例代码 CompiledScript 描述 ...

  3. 什么?java中居然可以执行js代码了?真是不知者不怪

    今天在书上看的,java中可以直接调用js的函数了,言外之意就是java已经支持外部的脚本语言了(在运行期解释执行的),查了查,jdk从1.6之后开始支持的,1.6之前不可以. 为什么Java这种编译 ...

  4. java rhino 运行 js_java 脚本引擎Rhino执行js代码和文件

    测试js脚本引擎 public class helloworld { public static void main(String[] args) throws Exception { //获得脚本引 ...

  5. html动态加载js方法,原生JS实现动态加载js文件并在加载成功后执行回调函数的方法...

    本文实例讲述了原生JS实现动态加载js文件并在加载成功后执行回调函数的方法.分享给大家供大家参考,具体如下: 有的时候需要动态加载一个javascript文件,并且在加载成功后执行回调函数(例如文件中 ...

  6. Ajax异步请求(重渲染DOM元素时,如何自动调用并执行JS自定义函数【含代码】)- 案例篇

    文章目录 Ajax异步请求(重渲染DOM元素时,如何自动调用并执行JS自定义函数[含代码])- 案例篇 效果截图: 重要代码: 附:全部HTML代码: Ajax异步请求(重渲染DOM元素时,如何自动调 ...

  7. HTML调用Java函数或语句,在动态THML语句中调用JS函数传递带空格参数的问题

    刚刚遇到一个问题,调用js函数的参数里带空格,造成调用失败的问题. 部分代码如下: html+=" "; //name中如果有空格就是调用失败 html+=" " ...

  8. Java脚本引擎执行js代码以及动态编译

    Java脚本引擎执行js代码 一.概述 JAVA脚本引擎是从JDK6.0之后添加的新功能. 使得 Java 应用程序可以通过一套固定的接口与各种脚本引擎交互,从 而达到在 Java 平台上调用各种脚本 ...

  9. oracle中执行动态sql语句吗,oracle中有没有可动态执行sql语句的函数

    oracle中有没有可动态执行sql语句的函数 关注:233  答案:2  手机版 解决时间 2021-03-05 15:53 提问者祗剩寂寞 2021-03-04 22:38 oracle中有没有可 ...

最新文章

  1. 开源仓库Harbor搭建及配置过程
  2. [caffe] 数据制作和训练
  3. java 导出excel二维表,如何轻松将EXCEL二维统计表转为数据清单?
  4. 树莓派超声波模块测距
  5. 递归转化成非递归过程_8086微处理器中的递归和重入过程
  6. 中国农业机械用橡胶履带行业市场供需与战略研究报告
  7. Qt Quick编程(1)——QML的核心部分ECMAScript
  8. Nutch1.2二次开发详细攻略(一)【图文】------Windows平台下Cygwin环境的搭建
  9. 几行代码就能实现为何要多此一举
  10. dev-c 语言注释快捷键,devc 使用教程 注释
  11. mysql数据库季度函数_数据库之MySQL函数(二)
  12. 零基础java学习---温故而知新
  13. IDEA---那些你不知道的设置
  14. 新手如何建立网站,网站建设的几个步骤。
  15. Photoshop安装
  16. java map put map_关于Java中有关Map中put方法理解
  17. 三角函数反函数c语言,高中数学反函数有哪些 反三角函数的所有公式
  18. linux安装及启动nsq流程
  19. rnss和rdss的应用_浅谈北斗二代RDSS和RNSS组合技术.doc
  20. 数据科学概论课程设计

热门文章

  1. php分页预览函数,PHP分页函数的简单示例
  2. 安卓给string对象赋值_String 面试题!看完让你恍然大悟!
  3. 学期计算机教学工作反思,信息技术组教学工作反思
  4. java 数组json_如何在Java中创建JSON数组
  5. 正点原子探索者原理图_正点原子【STM32-F407探索者】第二十六章 DAC 实验
  6. 排序命令: sort, wc, uniq
  7. nodejs fs path
  8. springboot profiles
  9. 我的HTML学习记录(七)
  10. ilpimage to bitmap