1

Firefox 16 では、 https://bugzilla.mozilla.org/show_bug.cgi?id=748343に従ってグローバル インスタンスを使用して Java にアクセスできなくなりました。

Java をロードしてカスタム フレームワークを実行するカスタム selenium-ide.xpi (http://seleniumhq.org/download/) を作成しました。Java にアクセスするために、 https ://developer.mozilla.org/en-US/docs/ にあるようなものを使用して Java を呼び出す addJava.js ファイルを追加しました。 Java_in_Firefox_Extensions ですが、これは機能しなくなりました。

この問題を解決するために、次のことを試しました。

以下をさまざまな .xul ファイルに追加しますが、以下を試すたびに、appletRef が null であることがわかります。

<div name="appletDiv">
    <embed id ="cipherDocsApplet" type="application/x-java-applet;version=1.6" code="java.applet.Applet"  pluginspage="http://java.com/download/"  MAYSCRIPT="true" width="0" height="0" />  
</div>

var appletRef = document.getElementById("cipherDocsApplet");
window.java = appletRef.Packages.java;

以下は、 java_instance.Packages が未定義であることを示しています。

var java_instance = window.document.createElementNS("http://www.w3.org/1999/xhtml","applet");
     java_instance.setAttribute("id", "adsfund_java_instance");
     java_instance.setAttribute("code", "java.applet.Applet");
     java_instance.setAttribute("width", "0");
     java_instance.setAttribute("height", "0");
     java_instance.setAttribute("flex", "1");

var div = window.document.createElementNS("http://www.w3.org/1999/xhtml","div");
var elementToAppendTo = window.document.getElementsByTagName("vbox")[0];
elementToAppendTo.appendChild(div);
div.appendChild(java_instance); 
var date = new java_instance.Packages.java.util.Date();

最後に、 https: //bug748343.bugzilla.mozilla.org/attachment.cgi?id=655062 を試し、 app 要素をメインの xul ファイルに追加して後で取得しましたが、同じエラーが発生しました: 'TypetError:app .Packages は定義されていません。

これを修正する方法を知っている人はいますか?

前もって感謝します、ジェームズ

4

1 に答える 1

0

あなたはこれを難しい方法でやっています。WebDriver (Selenium2 フレームワークの一部) を使用すると、カスタム Firefox プロファイルをロードすることで、Java .xpi 拡張機能を動的にロードできます。

例えば:

File file = new File("firebug-1.8.1.xpi");
FirefoxProfile firefoxProfile = new FirefoxProfile();
firefoxProfile.addExtension(file);
firefoxProfile.setPreference("extensions.firebug.currentVersion", "1.8.1");
WebDriver driver = new FirefoxDriver(firefoxProfile);

あなたが思いついたことは典型的ではなく、そのために多くの人があなたの質問に答えることができるとは思えません.

また、Firefox の新しいバージョンで「LiveConnect」機能が無効になっている場合、サポートされていないブラウザに JavaScript インジェクションによってその機能を強制的にサポートさせようとする理由は何ですか?

于 2013-01-30T00:47:22.340 に答える