5

executeScriptセレンWebドライバーでこのメソッドを使用していますが、問題が見つかりました。

js.executeScript("var b='1'; ");
js.executeScript("alert(b)");

上記のコードを実行した後、値がであるアラートウィンドウが表示されると思いますが、次のように表示されます1

b is not defined

私の質問は次のとおりです。bグローバル変数として定義しましたが、後で取得できないのはなぜですか?

4

1 に答える 1

15

変数を次のように定義する

var b='1'

スコープをスクリプトの実行に制限します。Seleniumは、javascriptスニペットの実行を独自のスクリプトにラップするため、変数はスクリプトの終了後も存続しません。試す

window.b = '1';

そして後で

alert(window.b);

変数をグローバルスコープに配置します。

于 2012-12-13T11:11:56.833 に答える