Seleniumに関する1つの問題は、ページがAJAXリクエストを頻繁に使用する場合、Seleniumは要求が完了した時点を知らないため、要求された要素に対するページのクエリを開始する必要があることです。セレンに目に見えない要素が見えるようにするには?
この問題を解決するために私の考えは、カウンタがAJAXリクエストが終了するたびにインクリメント含まれていますページに見えないdiv
を入れていた
:私はのような行を置くことができるセレンのテストコードでそう
<!-- will be v1v after first AJAX requext, v2v after the second etc. -->
<div style="display: none;" id="ajaxcounter">v0v</div>
をこの:どうやらセレンは、私はこのdisplay: none;
、その後、SELを削除する場合style="display: none;"
(と要素の内容を「見る」ことを拒否しかし、上記の行は、selenium.common.exceptions.TimeoutException
を提起
WebDriverWait(self.driver, 10).until(
text_to_be_present_in_element((By.ID, "ajaxcounter"), "v1v")
)
# test stuff that depends on the first AJAX request
エニウムはうまくいく)。
セレンはこの目に見えない要素を見ることができますか?それは他の目に見えない要素については普通に文句を言うことができますが、それでもなおこの要素が1つしか見えません。
が、これはあなたには関係ありませんあなたは確かは以下のとおりです。https://stackoverflow.com/questions/2835179/how-to-get-selenium-to-wait-for-ajax-response – Adam