web-dev-qa-db-ja.com

Seleniumを使用してJavaScriptから値を返す方法は?

このアドバイス を使用してJavaScriptを実行し、このスクリプトから値を返したいのですが。

8
r_D

次のように値を返すだけです。

Java:

JavascriptExecutor js = (JavascriptExecutor) driver;         
js.executeScript("return document.title");

Python:

driver.execute_script("return document.title")
12
Jochen

(.jsファイルで)使用して返される値を追加しました:

document.body.innerHTML += '<div style="display:none;" id="some_id">' + value_to_be_returned + '</div>';

Javaを使用して(.Javaファイルで)の値にアクセスしました:

String return_value = (String) js.executeScript("return document.getElementById('some_id').innerHTML");
6
r_D

非同期の場合、私は以下を使用しました:

driver.executeAsyncScript(
  "var callback = arguments[0];" + 
  "$.ajax('someurl')" + 
  ".success(function(data){callbacks(data)});"
);
0
Chanrith