2012-04-14 35 views
0

需要填寫某個特定網站的網絡表格,其中包含可用的HTML源代碼。我想從數據庫記錄中填寫此表單中的字段。我不想將請求發佈到服務器,因爲應用程序用戶會首先驗證填充的數據並手動提交表單。如何使用Java填寫網頁表單(不想提交,但只想填寫數據庫中的字段)

在java中有什麼方法可以實現這個目標嗎?我已經在VB.Net中實現了這一點,但是想要包含作爲已經在java中開發並實現業務邏輯的更大應用程序的一部分。

您的幫助,將不勝感激。

感謝, SRA

+2

顯示到目前爲止,你已經嘗試過的代碼,並解釋你所遇到的困難。 – 2012-04-14 07:16:51

+0

到目前爲止,我還沒有嘗試過任何代碼。我甚至沒有得到任何出發點。閱讀有關硒但仍然任何其他出路將有所幫助。 – sra 2012-04-14 07:21:23

+1

這個問題沒有給出足夠的上下文。這個Java支持哪裏運行?在用戶的網絡瀏覽器或服務器上? – 2012-04-14 07:23:38

回答

0

的Java將在服務器上運行。

在這種情況下,你只修改服務器,使其產生與從數據庫中的值預先填充<input>元素的HTML;例如使用value屬性。這對選擇器來說有點複雜,你必須確保預先選擇一個選項。

+0

對不起,我誤解了你的上下文。我想代表客戶端填寫Web表單,而不是直接從服務器填寫。再次抱歉。你能再次指導我解決問題嗎?謝謝回覆。 – sra 2012-04-14 07:37:55

0

因此,您需要訪問數據庫,並且還需要從客戶端填寫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 
} 
+0

感謝噸瓦迪姆...我會給它一個打擊,讓你知道。還將探索硒的其他權力。 :) 再次感謝。 – sra 2012-04-14 10:09:47

相關問題