我在jython中使用htmlunit,並且無法選擇下拉鍊接。我要去的網頁有一個帶有其他ajax鏈接的表格,我可以點擊它們並移動,看起來沒問題,但我似乎無法弄清楚如何點擊一個允許更多鏈接的下拉菜單(這個pulldown會影響ajax表,所以它不會重定向我或任何東西)。在htmlunit中選擇下拉菜單
這裏是我的代碼:
selectField1 = page.getElementById("pageNumSelection")
options2 = selectField1.getOptions()
theOption3 = options2[4]
這得到我想要的選項,我驗證其右。所以我選擇它。
MoreOnPage = selectField1.setSelectedAttribute(theOption3, True)
,我堅持在這裏(不知道如果選擇它工作與否,因爲我沒有得到任何消息,但我不知道下一步該怎麼做我如何刷新該頁面看到更大的列表?當點擊鏈接時,你所要做的就是找到鏈接,然後選擇linkNameVariable.click()到一個變量,它的工作原理,但我不知道如何刷新下拉。嘗試使用Web客戶端來創建基於選擇變量的XML頁面,我仍然得到舊的一頁。
,使其更容易一點,我用的HtmlUnit編劇並得到了一些代碼,應該工作,但它的Java和我不知道如何將它移植到jython。它是這樣的:
try
{
page = webClient.getPage(url);
HtmlSelect selectField1 = (HtmlSelect) page.getElementById("pageNumSelection");
List<HtmlOption> options2 = selectField1.getOptions();
HtmlOption theOption3 = null;
for(HtmlOption option: options2)
{
if(option.getText().equals("100"))
{
theOption3 = option;
break;
}
}
selectField1.setSelectedAttribute(theOption3, true);
感謝您的回覆Bennettweb。我研究了Selenium,但它似乎並沒有頭腦,我正在無頭的Linux環境中運行它。 – Lostsoul 2011-03-24 03:37:51
您仍然可以在您的linux無頭環境中以無頭模式運行Firefox,方法是指定要連接的虛擬顯示器。然後,您可以使用WebDriver作爲連接到Firefox的其他一些答案中的提及。 – 2013-02-27 11:11:06