JavaScriptの結果が文字列またはブール値と一致するまで待つ必要があります。このJavaScriptでSelenium - 返されるまで待つjavascriptスクリプトの値が一致する値
:
document.getElementById('video_html5').seeking;
私は「偽」/「真」の値を取得し、私は値が「偽」になるまで待機する必要があるので、私は、ビデオではないことを確信していますしかし、私はjavascriptのコマンド値を待つ方法しか見つけず、値がテキストと一致するかどうかをチェックする方法ではありませんでした。
new WebDriverWait(driver, 30)
.until(ExpectedConditions.jsReturnsValue("return document.getElementById('video_html5').seeking;"));
場合によっては、ブール値以外の文字列を取得し、それらの文字列を比較する必要があるためです。
私はRubyでなく、Javaでそれを行う方法を発見した:
wait_element = @wait.until { @driver.execute_script("return document.getElementById('vid1_html5_api_Shaka_api').seeking;").eql? false }
これは機能しますか? Seeking === 'false'? 'true':undefined; ")'シークがtrueの場合は 'undefined'を返し、JavaScriptの値を直接比較します。 –