python +セレン表示待ち、待ち時間や暗黙の違いを待つことを余儀なく

実際の使用のセレンまたはappiumで、で、使用待ちに固定表示され、特にウェブサイドローディングプロセス、必要性を保持する次の要素を待っている、と待機アプローチは、スクリプトの安定的かつ効率的な運用を確保するために非常に重要な手段を設定することです共通待機中のセレン(appiumジェネリック)で:

 

表示待ちWebDriverWait() 暗黙的にimplicitly_waitを待って() 、睡眠を待つことを余儀なく)ここでは、これら3つの違いを紹介する3を待っています

  • 睡眠():待機を余儀なくさは、睡眠時間の設定が固定されていますスクリプト実行スリープ(実行中)スリープ状態にスレッド後に、他の2つのスレッドが寝ていないながら。
  • implicitly_wait():暗黙の待ち時間、セットであるグローバル待機設定した待ち時間は、ページの読み込み時間がそのページ全体のロード時間上のすべての要素のために設定されています。
  •                              あなたが設定時間を超えた場合は例外がスローされます。暗黙の待ち時間が指定された時間枠内で理解することができますが、時間または関連する要素の終わりを見つけるまで、ブラウザは常にページを更新します。
  • WebDriverWait():表示のための待ち時間は、固有のもので、特定の要素、待機時間設定要素が規定時間内に見つかった場合は、設定された時間内に、時間へのデフォルトの時間は、要素の存在いったん現在のページを検出するための、次に動作の関連要素の実装に見られるものと、直接実行され、検出されない場合、例外がスローされた設定時間を超えています。NoSuchElementExceptionを:デフォルトのポーリング頻度は、デフォルトがスローされ、0.5秒です。

 

注:表示は、特定の要素を待つ関連の判断を待っています。

          特定の要素を待たずに暗黙の待ち時間は、待ち時間にグローバルな要素です。

-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------------

セレンページ表示待ち待ち待ちと暗黙的

暗黙の待ち時間  :シンプル、秒単位で、過去に他の操作を行うには、この時間の待機を待機時間を提供します。0にデフォルトで設定されていない場合driver.implicitly_wait(10)、

ショー待ち:条件を指定して、最大待機時間を設定します。この時点で要素を発見していない場合は、例外がスローされます。唯一の条件は、追跡コード、より柔軟な使用の実装前に、トリガされます。

 

主にselenium.webdriver.supportのクラスに関連Expected_conditions

 

注:規定時間内に完了し、ページの読み込みが、次のステップ、そうでない場合は、期限まで、次のステップを待っていれば待ち時間は、最大待ち時間を設定する目に見えないです。

           注欠点があること、そのプログラムは、ページ全体の負荷は、通常の状況下では、ブラウザのタブバーは、もはや少しサークルのターンで参照されていないこと、完了するまで、待機します次のステップになります

-------------------------------------------------- -------------------------------------------------- ---------------------

 

 

ショー待ち:WebDriverWait()

インポートパッケージ:

 

selenium.webdriver.support.ui輸入WebDriverWaitから
ECとしてselenium.webdriver.supportインポートexpected_conditionsから

 

WebDriverWait(ドライバ、タイムアウト、poll_frequency = 0.5、ignored_exceptions =なし)

ドライバ:ブラウザのドライバ
タイムアウト:秒で、デフォルトでは最大タイムアウト
間隔検出ステップ、デフォルトの0.5秒:poll_frequency
ignored_exceptions:タイムアウト後にスロー異常情報、デフォルトのNoSuchElementExeceptionスローされる例外。

 

-------------------------------------------------- -------------------------------------------------- ----------------------------------

()まで又はuntil_not()メソッドと組み合わせて

 

(1)WebDriverWait(ドライバ、10 )(メソッド、メッセージ=「」).untilは、
         戻り値が真になるまで、パラメータの方法を提供するドライバを呼び出し


(2)WebDriverWait (ドライバ10 .until_not (メソッド、メッセージ= ""

         この戻り値になるまでの方法は、ドライバをパラメータとして呼ばれる提供

 

-------------------------------------------------- -------------------------------------------------- ----------------------------------

設定時間(10秒)内に、後者の条件待ちが発生します。集合時間以上が発生していない場合は、例外がスローされます。

 

一方、所定の時間ごとに(デフォルトでは0.5秒)、メソッド呼び出しやuntil_notまでは、TrueまたはFalseを返すまで。

 

expected_conditionsと組み合わせて使用​​WebDriverWait:


ECとしてselenium.webdriver.support輸入expected_conditionsから
selenium.webdriver.common.byのインポートからのことで

待つ= WebDriverWait(ドライバ、10,0.5)
元素= waite.until(EC.presence_of_element_located((By.ID、 "KW")、メッセージ= "")


#ここで注意、その省略メッセージ場合=「」、By.IDの外側の2つの層()

-------------------------------------------------- -------------------------------------------------- -------------------------------

ECとしてselenium.webdriver.support輸入expected_conditionsから
selenium.webdriver.common.byのインポートからのことで

= WebDriverWait待機(ドライバ、10、0.5)
要素= waite.until(EC.presence_of_element_located((By.ID、 "キロワット")、メッセージ= "")
は省略メッセージ場合=、ことをここで#注""です。 IDは、2つのアウトです()

================================================== =============================

ECとしてselenium.webdriver.support輸入expected_conditionsから
selenium.webdriver.common.byのインポートからのことで

待つ= WebDriverWait(ドライバ、10,0.5)
元素= waite.until(EC.presence_of_element_located((By.ID、 "KW")、メッセージ= "")

 

 

 

 

 

================================================== ==============================

 

WebDriverWait()の構文は次のとおりです。

 

.until WebDriverWait(ドライバ、タイムアウト、poll_frequency = POLL_FREQUENCY、ignored_exceptions =なし)(メソッド、メッセージ=)

或者
WebDriverWait(ドライバ、タイムアウト、poll_frequency = POLL_FREQUENCY、ignored_exceptions =なし).until_not(方法、メッセージ=)


このような(IEは、Firefox、クロム、サファリなど)ドライバ、webdriverをドライバ、
タイムアウト、秒デフォルトでタイムアウト
poll_frequency、睡眠時間(ステップ)デフォルトの間隔は0.5秒、即ち、検出周波数要素が中に存在するある
ignored_exceptions、タイムアウト後に異常情報「はNoSuchElementException」ケース研磨デフォルトは、我々が無視異常情報を定義することができ

、一般的になるまで行わWebDriverWait until_notまたはを使用して:

(メソッド、メッセージ=「)が戻り値がFalseになるまで運転者がパラメータとしてメソッドを提供呼び出すまで

(until_not方法、メッセージは=)」ドライバがパラメータの方法を提供する呼び出し、戻り値はFalseになるまで

 

 

================================================== ==============================

 

 


予想される条件expected_conditionsクラスが決定する方法を提供し、

方法について説明
title_isが(==)予測文字列正確に等しい現在のページタイトルは、ブール値を返すかどうかを判定する
、title_contains現在のページのタイトルが期待される文字列を含むかを示すブール値を返し
、要素がツリーDOMに追加されたか否かを判定するpresence_of_element_locatedをこれは、要素が見なければならないことを意味するものではない
要素を決定visibility_of_element_located(非隠された要素の代わりに、可視、および要素の幅と高さが0に等しくない)表示されている
方法visibility_of上記のように、しかし方法ロケータのパラメータ、メソッドパラメータは、位置決め要素であります
presence_of_all_elements_locatedは、少なくとも一つの要素は、DOMツリー内に存在するかどうかを決定します。

                                                             例:クラスの要素Nページがある場合は長い要素存在があるように、メソッド戻り真として、「WP」である
要素にtext_to_be_present_in_elementテキストは文字列が期待さ含まれているか否か判定される
決意要素text_to_be_present_in_element_valueをvalue属性は期待文字列が含まれている
それ以外の場合はFalseを返す、あなたができるならば、フレームは、それに切り替えることができるかどうかを判断し、リターンへのスイッチ真frame_to_be_available_and_switch_to_it
DOMツリーまたは不可視の要素が存在していないかどうかを判断invisibility_of_element_located
element_to_be_clickable判決要素が表示され、クリックすることができるかどうか
、この方法はまた、TrueまたはFalseを返すことに、注意を要素staleness_ofので、DOMツリーから削除
要素は、一般的に、選択されたドロップダウンリストで使用されているかどうかを判断element_to_be_selected
判断の要素をelement_selection_state_to_be期待に選択されたラインか
上記方法の効果と同じ、しかし着信位置決め要素に上記の方法、およびこの方法パスロケータとelement_located_selection_state_to_be
alert_is_presentページの判断に警告の存在下または非存在下


 

================================================== ================================================== ================

おすすめ

転載: www.cnblogs.com/xiaobaibailongma/p/12046487.html