如何在HtmlUnit executeJavaScript(查询)参数中使用jQuery?

时间:2017-12-23 01:05:36

标签: javascript jquery htmlunit

我广泛使用HtmlPage类(HTMLUnit)的“executeJavaScript(String queryText)”方法。它工作得很好,但它不识别queryText中的jQuery或$符号。我假设我需要初始化内部jQuery支持或包含jQuery库。有人知道怎么做这个吗? 谢谢

2 个答案:

答案 0 :(得分:0)

确保在执行该语句之前有脚本标记下载jquery脚本。最佳位置是在页面的头部元素内。另一种可能性是您有另一个第三方脚本重新定义$(这是常见的事情):然后您可以尝试在查询文本中使用jQuery代替$

答案 1 :(得分:0)

String jQueryInjector = 'eval(
  function loadJQuery(){
   var newJQueryLib = document.createElement("script");           
   newJQueryLib.type = "text/javascript";
   newJQueryLib.src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1
                                                       /jquery.min.js";
   (document.getElementsByTagName("head")[0]||document
     .getElementsByTagName("body")[0])
     .appendChild(newJQueryLib););
  loadJQuery();';
ScriptResult sr = page.executeJavaScript(jQueryInjector);