2011-08-04 22 views
3

好了好了,我們開始吧...如何從一個Java小程序(在瀏覽器內)

提取數據我們有定期的瀏覽器中運行的Java小程序(FF4 +或IE5 +)。

我無法訪問java代碼/ servlet。甚至沒有服務器。

我需要從這個小程序發送/檢索數據。這意味着我必須通過單擊按鈕並填寫表單的文本框來模擬用戶,並返回將在文本框內的數據(服務器響應之後)。

所以可用的技術有C,VB,.NET(主要是網頁瀏覽器對象),PHP(可用),JavaScript,使用Fiddler嗅探瀏覽器/服務器通信。

我們確實需要這個。但如果這是不可能的,所以我們可能也必須知道。這些數據歸我公司所有,因此不會造成任何形式的複製。

而且我接受非傳統的解決方案,如保存HTML作爲一個圖像,然後使用一些OCR軟件檢索數據...

好所以任何建議或指點方向會感激地讚賞。

Thx

Paulo Bueno。

+0

如果它是一個Windows應用程序,我會告訴你使用Accessibility apis(爲視覺障礙者考慮屏幕閱讀器)(可用於自動化控件)。看看這樣的事情是否會有所幫助:http://java.sun.com/javase/technologies/accessibility/index.jsp –

+0

問候,applet是通過http還是https連接? – tomdemuyt

+0

您好tomdemuyt,只使用http,但在特定的端口(如果它有任何不同),所以url開始爲'http://corp.site.com:7777/sx/jsp/login.jsp?var = 45345&var2&asdf'。 –

回答

0

您可以使用JRE中提供的「appletviewer」在沒有瀏覽器的情況下運行任何applet。通過這種方式,用http://code.google.com/p/windowlicker/來讀取和發送假輸入來控制SWING GUI是可能的,但不可行。

但定期的瀏覽器環境中訪問代碼,你寧願做這個範圍內:使用「腳本化」和「MAYSCRIPT」屬性在你的對象標籤/元素

。標準瀏覽器JRE包含一個「plugin.jar」,其中包含完成這項工作所需的功能。此接口可以讓Java的小程序代碼通信(反之亦然)的Javascript,從至極,你可以做任何你想要的(即Ajax請求)

這個話題是相當複雜的,所以查了一下谷歌告訴我們:

http://www.htmlcodetutorial.com/applets/_APPLET_MAYSCRIPT.html http://www.raditha.com/java/javascript.php

使用這個接口是一個真正的痛苦,所以我建議在applet中實現HTTPRequests來告訴PHP服務器無論你想告訴它什麼。

問候, 邁克爾

+0

這似乎是一個非常好的開始。但正如我所說我沒有訪問Java代碼。我正在等待一個自動啓動來啓動這個項目,所以現在沒辦法試試這個。只要我得到它,我會告訴結果。 –

+0

無法訪問代碼或使用修改的(被黑掉的)VM JRE或其他異常執行環境,您無法從java腳本控制applet。 – willsteel

0

我沒有訪問java代碼/ servlet的。甚至沒有到 服務器。

呃......這是很不尋常的情況。如果你有小程序,當然,你應該有權訪問其src文件來修改:)

我需要從這個小程序發送/檢索數據。這意味着我必須 通過單擊按鈕並填寫表格的 文本框並在文本框內返回數據(在服務器響應之後)在文本框內將 模擬到其上。

無論如何,「模仿」的用戶可以使用Robot對象,但仍然會要求您修改applet代碼,使它支持一些附加功能......我能記得的,JS等無法控制的Java Applet來自外部的命令,除非該applet確實包含JS支持的網頁交互功能......但是你仍然說你沒有任何訪問該applet的 src,所以沒有任何信息該applet支持netscape.javascript或不是以及它如何支持它,所以它是不清楚的...所以我必須問你有沒有這個小程序的任何文檔?

正在添加圍繞這個問題的文本和又回到了問題的標題本身它說

「我怎樣才能從一個Java小程序提取數據(在瀏覽器中)」

我可以猜想要說 要從Java Applet中提取數據您可以使用支持Java Applet和JS交互的netscape lib exampledocs。這就是在這種情況下

好運

3

不得不模仿用戶瀏覽是有問題的,我會建議一個替代路線,如果可行的話。這些是我會採取的步驟:

  1. 從我的緩存中抓取applet類或jar(任何訪問頁面/ applet的人都可以這樣做)。
  2. 反編譯的代碼轉換爲Java源(使用JAD或其他首選工具)
  3. 審查與該小程序的服務
  4. 通信的過程中編寫一個應用程序,以我的數據提交給該小程序連接到服務和像Applet一樣處理任何響應。
0

如果您必須通過與java applet交互而不是逆向工程來獲取數據,請查看FEST (Fixtures for Easy Software Testing)。 FEST旨在通過模擬用戶交互來測試Java Swing GUI,但您也可以輕鬆使用它來自動化您的小程序。

查看testing applets的文檔頁面以開始使用。

相關問題