需要填寫某個特定網站的網絡表格,其中包含可用的HTML源代碼。我想從數據庫記錄中填寫此表單中的字段。我不想將請求發佈到服務器,因爲應用程序用戶會首先驗證填充的數據並手動提交表單。如何使用Java填寫網頁表單(不想提交,但只想填寫數據庫中的字段)
在java中有什麼方法可以實現這個目標嗎?我已經在VB.Net中實現了這一點,但是想要包含作爲已經在java中開發並實現業務邏輯的更大應用程序的一部分。
您的幫助,將不勝感激。
感謝, SRA
需要填寫某個特定網站的網絡表格,其中包含可用的HTML源代碼。我想從數據庫記錄中填寫此表單中的字段。我不想將請求發佈到服務器,因爲應用程序用戶會首先驗證填充的數據並手動提交表單。如何使用Java填寫網頁表單(不想提交,但只想填寫數據庫中的字段)
在java中有什麼方法可以實現這個目標嗎?我已經在VB.Net中實現了這一點,但是想要包含作爲已經在java中開發並實現業務邏輯的更大應用程序的一部分。
您的幫助,將不勝感激。
感謝, SRA
的Java將在服務器上運行。
在這種情況下,你只修改服務器,使其產生與從數據庫中的值預先填充<input>
元素的HTML;例如使用value
屬性。這對選擇器來說有點複雜,你必須確保預先選擇一個選項。
對不起,我誤解了你的上下文。我想代表客戶端填寫Web表單,而不是直接從服務器填寫。再次抱歉。你能再次指導我解決問題嗎?謝謝回覆。 – sra 2012-04-14 07:37:55
因此,您需要訪問數據庫,並且還需要從客戶端填寫Web表單。如果使用Selenium,則會出現以下情況:
用戶啓動程序。程序打開瀏覽器窗口,登錄並填寫表單。用戶檢查數據並按下「發送」按鈕。瀏覽器窗口被程序自動關閉(可能可以保持瀏覽器窗口打開,但最好清理資源並完成程序)。
代碼示例:
public static void main(String[] args) throws InterruptedException {
webDriver = new FirefoxDriver();
try {
processPage();
} finally {
webDriver.quit();
}
}
private static void processPage() throws InterruptedException {
webDriver.get("http://some_page_url");
// Page element search example
List<WebElement> elements = webDriver.findElements(By.xpath(XPATH_STR));
// Fill page here
}
感謝噸瓦迪姆...我會給它一個打擊,讓你知道。還將探索硒的其他權力。 :) 再次感謝。 – sra 2012-04-14 10:09:47
顯示到目前爲止,你已經嘗試過的代碼,並解釋你所遇到的困難。 – 2012-04-14 07:16:51
到目前爲止,我還沒有嘗試過任何代碼。我甚至沒有得到任何出發點。閱讀有關硒但仍然任何其他出路將有所幫助。 – sra 2012-04-14 07:21:23
這個問題沒有給出足夠的上下文。這個Java支持哪裏運行?在用戶的網絡瀏覽器或服務器上? – 2012-04-14 07:23:38