當您將鼠標懸停在初始鏈接上時,當該鏈接有鏈接的下拉列表時,是否可以單擊使用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 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函數和錨點建立強有力的聯繫。
一般來說JavaScript對於HtmlUnit來說不是問題(除非你禁用了javascript)。在你的特殊情況下,問題是,如何觸發mouseover事件。 – MrSmith42