につながる:ルビーexecute_scriptは、私は次のコードを持つルビーRSpecの - カピバラ を経由して自動化を行うページのパフォーマンスの詳細の一部 に関するカスタムJSの機能を持っていない結果
visit page
execute_async_script("function getPagePerformance(){if (window.performance && window.performance.timing) {
let timing = window.performance.timing;
let timing_obj = {};
/*timing*/
timing_obj.pageLoadingTime = timing.loadEventEnd - timing.navigationStart;
timing_obj.dnsHandshake = timing.domainLookupEnd - timing.domainLookupStart;
timing_obj.tcpConnect = timing.connectEnd - timing.connectStart;
timing_obj.timeToReachServer = timing.responseStart - timing.requestStart;
timing_obj.serverResponseTime = timing.responseEnd - timing.responseStart;
timing_obj.totalNetworkLatency = timing.responseEnd - timing.fetchStart;
timing_obj.domInteractive = performance.timing.domInteractive - performance.timing.navigationStart;return timing_obj;}}
getPagePerformance()")
を私はそれを試してみました
execute_async_script
execute_script
evaluate_script
を、コンソール には結果がありません。しかしイムは手動 追加で私はを設定しようとしたことをやっている場合、彼らは以下のとおりです。すべてのメソッドルビーは、実際に持っています10またはconsole.log
内のすべての行がすべて実行されているかどうかをチェックするだけです - テスト実行中にすべての警告が表示されています
ページがロードされていることを確認するために追加しました(このケースに関する質問を除外するだけです)
私の質問は、テストが実行されたときにこの関数が値を返さない理由です。
あなたは 'evaluate_script'を行うときに何が起こりますか?どこのエラー? –
標準出力と標準エラーがリダイレクトされているかどうかを確認します –
"コンソールには結果がありません" - コンソールに書き込むコードは表示されません。 –