私は次の問題に直面しています.PhantomJSドライバからserenityフレームワークを使用してjavascriptを実行しています。phantomJSドライバを使用してjavascriptを実行中に問題が発生しました
(PhantomJSDriver) driver).executeScript("document.getElementsById('whereOut')")
エラー:
{"errorMessage":"'undefined' is not a function (evaluating 'document.getElementsById('whereOut')')","request":{"headers":{"Accept-Encoding":"gzip,deflate","Connection":"Keep-Alive","Content-Length":"69","Content-Type":"application/json; charset=utf-8","Host":"localhost:33819","User-Agent":"Apache-HttpClient/4.3 (java 1.5)"},"httpVersion":"1.1","method":"POST","post":"{\"script\":\"document.getElementsById(\u0027whereOut\u0027)\",\"args\":[]}","url":"/execute","urlParsed":{"anchor":"","query":"","file":"execute","directory":"/","path":"/execute","relative":"/execute","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/execute","queryKey":{},"chunks":["execute"]},"urlOriginal":"/session/b0246730-4435-11e6-b64c-7bf1e13a7577/execute"}} Command duration or timeout: 278 milliseconds
も試み次のコードを下記のようにコード上
((JavascriptExecutor) driver).executeScript("document.getElementById('whereOut')")
私は戻り値を追加してもNULL値を返す:
((JavascriptExecutor) driver).executeScript("return document.activeElement")
ヌル値を返します。
誰もがファントムjsを使用して特定の要素のcss
を変更しようとしましたか?
((JavascriptExecutor) driver).executeScript("document.getElementById('whereOut').className=''")
私は何を考え出したことは、同じ要素がFirefoxブラウザで純粋なセレンのコードを使用して検索可能である一方で、コードの線の上実行している間、私はjavascript
実行を使用して要素を取得していないということです。
P.S.私は平静と一緒にphantomJS 1.9.7のバージョンを使用しています:1.0.56。
しかし、JavascriptExecutorはPhaによって実装されていませんntomJSDriver、どうすればこれはうまくいくのでしょうか? –