DOM(JavaScript)の戻り要素をJavaコードに変換し、その上でクリックアクションを最適化します。DOM要素をJavaScriptからJavaに戻してクリックを最適化する
それは(ボタンが存在することを確認してください)、私はマップされた関数によって名前actionButton
を返さ
ButtonFoundFunction(this, browser, "buttonFound"); - in Java code
buttonFound(`actionButton`); - in JavaScript
取得見つけたとき最初に私はJavaScriptを
var buttonToReturn = document.getElementById('actionButton');
することにより、文書内の要素(ボタン)を検索返されたボタン名actionButton
はButtonFoundFunction
で、BrowserFunction
になり、public Object function(Object[] arguments)...
を上書きし、この要素を以下のようにクリックします
browser.execute("document.getElementById('" + arguments[0] + "').click();");
しかしdocument.getElementById(...)
ボタンを2回目に検索します。それで問題は何ですか?
ボタンを一度検索する(JavaScriptのみ)に最適化し、要素全体をJavaコード(buttonToReturn
)に戻し、document.getElementById(...)
で2回目の検索なしでクリックします。私はしたいと思いますそれは私が二度目にそれを探していない、この要素の上に、ブラウザのクリックで実行することを意味
browser.execute(arguments[0] + ".click();");
以下のようになります実行します。
buttonToReturn
を返そうとしましたが、動作しません。BrowserFunction
は呼び出されません(間違ったタイプですか?)。たぶん私は代わりにJavaコードで他のオブジェクトを使用する必要がありますObject
?
1. searchButton()
+------+ -------------> +----------+
| Java | |JavaScript|
+------+ <------------- +----------+
2. buttonFound()
^
|
3. browser.execute(arguments[0] + ".click();");
EDIT
buttonToReturn
はHTMLDivElement
であり、私はそれを返さないことができます。