当您将鼠标悬停在初始链接上时,该链接具有链接下拉列表时,是否可以使用HtmlUnit单击链接。如果单击初始链接,则除了获得鼠标悬停时链接列表之外没有任何反应。我想单击其中一个下拉链接并获取与该链接关联的网页。
问题似乎是Anchor有JavaScript,它也是一个下拉列表。如果Anchor没有JavaScript并且下载那么我就不会有任何问题。
以下是相关的JavaScript代码:
<script language='JavaScript' type='text/javascript'>
<!--
function mmLoadMenus(){
window.mm_menu_0805151542_0 = new Menu("root",211,23,"Arial, Helvetica, sans-serif",11,"#FFFFFF","#FFFFFF","#056CB9","#014D98","left","middle",3,0,1000,-5,7,true,false,true,2,true,false);
mm_menu_0805151542_0.addMenuItem("View Tax Sales","window.open('TCTaxSaleBrief.asp', '_blank','width=800,height=580,scrollbars=1,resizable=yes,top=50,left=100');");
mm_menu_0805151542_0.addMenuItem("Registration Renewal Reprint","window.open('vrRenewal.asp', '_blank','width=800,height=580,scrollbars=1,resizable=yes,top=50,left=100');");
mm_menu_0805151542_0.addMenuItem("Drivers License","window.open('http://www.dds.ga.gov/', '_blank');");
mm_menu_0805151542_0.addMenuItem("Online Tag Renewals","location='../TaxCommissioner/TagRenewal.html'");
mm_menu_0805151542_0.hideOnMouseOut=true;
mm_menu_0805151542_0.bgColor='#CCCCCC';
mm_menu_0805151542_0.menuBorder=0;
mm_menu_0805151542_0.menuLiteBgColor='#FFFFFF';
mm_menu_0805151542_0.menuBorderBgColor='#015BA7';
</script>
以下是相关的主持人:
<a href="#" name="link11" class="nav" id="link10" onmouseover="MM_showMenu(window.mm_menu_0805151542_0,104,0,null,'link11')" onmouseout="MM_startTimeout();">Online Services</a><br />
以下是我用来实现这项工作的Java代码片段。
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_10);
String webPage="http://website.html";
try {
HtmlPage taxComPage = webClient.getPage(webPage);
HtmlElement htmlElement = taxComPage.getDocumentElement();
//HtmlAnchor anchor = taxComPage.getAnchorByText("View Tax Sales");
//HtmlAnchor htmlAnchor = taxComPage.getHtmlElementById("link10");
HtmlAnchor anchor = taxComPage.getAnchorByText("Online Services");
HtmlPage page = anchor.click();
}catch
如果HtmlUnit无法使用JavaScript,请告诉我们!
谢谢
据我所知,这个函数名为:mmLoadMenus(),它有鼠标悬停时显示的文字,但是我对这个函数如何与锚点关联有疑问。在锚中有一些叫做MM_showMenu的东西。什么是创建它的MM_showMenu,这是一个JavaScript关键字,我不认为它是在任何地方定义的。我搜索了整个页面,唯一提到的地方是锚。它似乎是某种类型的函数,参数为:window.mm_menu_0805151542_0,104,0,null,'link11'被传递给它。我可以在函数mmLoadMenus()和锚点之间建立的唯一连接是锚点中包含mm_menu_0805151542_0。我不是那么精通JavaScript,也许这就是为什么我没有与JavaScript函数和锚点建立强大的联系。
答案 0 :(得分:0)
数据已经在页面上,所以为什么不从JavaScript函数本身中删除它。只需要解析文本 - 比试图加载它更容易。