2013-01-07 101 views
2

當您將鼠標懸停在初始鏈接上時,當該鏈接有鏈接的下拉列表時,是否可以單擊使用HtmlUnit的鏈接?如果您點擊初始鏈接,除了獲得鼠標懸停時下拉的鏈接列表以外,不會發生任何事情。我想點擊其中一個下拉鍊接,並抓取與該鏈接關聯的網頁。HtmlUnit網頁抓圖具有JavaScript下拉鍊接的錨標籤

問題似乎是Anchor有JavaScript,它也是一個下拉列表。如果錨沒有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&nbsp;Tax&nbsp;Sales","window.open('TCTaxSaleBrief.asp', '_blank','width=800,height=580,scrollbars=1,resizable=yes,top=50,left=100');"); 
    mm_menu_0805151542_0.addMenuItem("Registration&nbsp;Renewal&nbsp;Reprint","window.open('vrRenewal.asp', '_blank','width=800,height=580,scrollbars=1,resizable=yes,top=50,left=100');"); 
    mm_menu_0805151542_0.addMenuItem("Drivers&nbsp;License","window.open('http://www.dds.ga.gov/', '_blank');"); 
    mm_menu_0805151542_0.addMenuItem("Online&nbsp;Tag&nbsp;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函數和錨點建立強有力的聯繫。

+1

一般來說JavaScript對於HtmlUnit來說不是問題(除非你禁用了javascript)。在你的特殊情況下,問題是,如何觸發mouseover事件。 – MrSmith42

回答

0

數據已存在於頁面上,爲什麼不從JavaScript函數本身中刪除它。只是解析出文本 - 試圖強制加載更容易。

+0

我在JavaScript函數和我感興趣的錨點之間建立連接時遇到了問題。由於stackoverflow限制了我的註釋的大小。請看我的問題,我已編輯它。 – user1701556