2017-07-31 73 views
0

我想這個網站使用的HtmlUnit和Java上訪問表中的值上表內的多個鏈接點擊:如何使用的HtmlUnit的Java

http://www.lipidmaps.org/data/chemdb_lm_text_ontology.php?ABBREV=PA(40:10)

例如,我希望能夠點擊「 LMGP10010453「下lm_id

我對這種性質的其他問題的解決方案將包括尋找元素的xpath或id,但在這種情況下,因爲我需要訪問許多其他網站,其中lm_id不會是這個確切的說,我不能硬編碼xpath鏈接。例如,在這個鏈接lm_id是不同的:http://www.lipidmaps.org/data/chemdb_lm_text_ontology.php?ABBREV=PI(27:0)

有沒有人有任何想法如何我可以訪問某些表的元素(最好只是最左上角的元素),並點擊其中的鏈接?

回答

0

要開始,請嘗試通過ID獲取表格。 (或者你可以通過獲得的XPath表。)

WebClient webClient = new WebClient(); 
HtmlPage page = webClient.getPage("http://www.lipidmaps.org/data/chemdb_lm_text_ontology.php?ABBREV=PA(40:10)"); 
HtmlTable table = page.getHtmlElementById("table id"); 

然後,您可以訪問使用table.getCellAt()

HtmlTableCell upperLeft = (HtmlTableCell) table.getCellAt(2,1); 

您可以從如表元素的鏈接左上角元素這個:

List<HtmlLink> links = upperLeft.getHtmlElementsByTagName("a"); 
String href = links.get(0).getHrefAttribute(); 

上面的代碼將爲您提供您嘗試點擊的鏈接的href。

最後,您可以從您找到的href中獲取錨點,然後單擊它。

HtmlAnchor anchor = page.getAnchorByHref(href); 
page = anchor.click(); 

您可能需要調整我的示例代碼以匹配您正在使用的表,但它通常應該正常工作。

希望這會有所幫助!