どのようにPython実装要素待っています

まず、なぜ要素が待っているでしょうか?

  UI自動化プロセスでは、要素の影響は、ネットワーク環境、機器の性能やその他の要素によって表示されます。そのため、時間の矛盾の要素への負荷と実行スクリプトへの要素は、文句を言うでしょう:要素を配置することはできません。

  例えば、単純なケース:実際のUIテスト自動化、ログイン制御インターフェースの新しい活動を開始する必要性、あるいは爆弾ボックスをロードする必要をクリックするか、ページを正常にリフレッシュされた後、負荷データにネットワークを要求し、その後、いくつかの時間を待つ必要がある、新しいインターフェースがに登場しましたUIは、そうでない場合は、データがまだロードさINGで、動作を継続するために、スクリプトは操作のための新しいインターフェイスコード、スクリプトエラーを実装し始めています。

第二に、待っている要素の役割

  1. セットの要素は、効率を改善するために、スクリプトの堅牢性を高め、待ちます。
  2. 自然はアドレスタイミングのミスマッチにある:スクリプトの実行、スクリプトの実行速度や読み込み速度は必ずしも同じページ要素ではありません

第三に、待機中の要素の型

  1. 待つことを余儀なく:待機ダイを、固定レイテンシ設定 - 睡眠を(2)#は5秒を待機させ、パッケージをインポートするための時間(インポート時)
  2. 設定した待ち時間の要素の全体のために - driver.implicitly_wait(5):劣性待ち
  3. ドミナント待ち:要素の特定のセットを待つ - (selenium.webdriver.support.uiインポートWebDriverWaitから)パッケージに導入する、WebDriverWait(ドライバ、タイムアウト、poll_frequency = 0.5、ignored_exception =なし)

待機中の要素を設定する方法第四に、

  応用例1.強制待ち状態:

appium インポートwebdriverを
 インポート時間
desired_caps = {}は
[desired_caps ' platformName ' ] = ' アンドロイド' 
desired_caps [ ' platformVersion ' ] = ' 5.1.1 ' 
desired_caps [ ' DEVICENAME ' ] = ' 127.0.0.1:62001 ' 
desired_capsを[ ' のpackageName ' ] = ' com.cnblogs.android ' 
desired_caps [ 'packagActivity "] = ' Com.cnblogs.android.SplashActivity ' 
desired_caps [ ' unicodeKeyboard ' ] = 
desired_caps [ ' resetKeyboard ' ] = Trueの
ドライバ = webdriver.Remote(' http://127.0.0.1:8888/wd/hub ' 、desired_caps )
 かかわらず現れる要素を待つかどうかの、5Sを待機させ、5Sに待機する必要があります 
time.sleep(5 
driver.find_element_by_id(com.cnblogs.android:id/TabSearch ).click()
time.sleepを( 2 
ドライバー.find_element_by_id(com.cnblogs.android:id/txtSearch').send_keys(' 方缘' 
driver.find_element_by_id(' com.cnblogs.android:id/search_btn ' ).click()
driver.quit()

  2.暗黙の待ち時間:

appium インポートwebdriverを
 インポート時間
desired_caps = {}は
[desired_caps ' platformName ' ] = ' アンドロイド' 
desired_caps [ ' platformVersion ' ] = ' 5.1.1 ' 
desired_caps [ ' DEVICENAME ' ] = ' 127.0.0.1:62001 ' 
desired_capsを[ ' のpackageName ' ] = ' com.cnblogs.android ' 
desired_caps [ 'packagActivity "] = ' com.cnblogs.android.SplashActivity ' 
desired_caps [ ' unicodeKeyboard ' ] = 
desired_caps [ ' resetKeyboard ' ] = Trueの
ドライバ = webdriver.Remote(' http://127.0.0.1:8888/wd/hub ' 、desired_caps )
 隐性等待(等待所有元素)、最长3S 
driver.implicitly_wait(3 
driver.find_element_by_id(' com.cnblogs.android:id/TabSearch ' ).click()
time.sleep( 2 
driver.find_element_by_id(com.cnblogs.android:id/txtSearch').send_keys(' 方缘' 
driver.find_element_by_id(' com.cnblogs.android:id/search_btn ' ).click()
driver.quit()

  3.支配待っています:

appium インポートwebdriverを
 から selenium.webdriver.support.ui インポートWebDriverWait
 インポート時間
desired_caps = {} 
[desired_caps ' platformName ' ] = ' アンドロイド' 
desired_caps [ ' platformVersion ' ] = ' 5.1.1 ' 
desired_caps [ ' DEVICENAME ' ] = ' 127.0.0.1:62001 ' 
desired_caps [ ' のpackageName ' ] = 'com.cnblogs.android ' 
desired_caps [ ' packagActivity ' ] = ' com.cnblogs.android.SplashActivity ' 
desired_caps [ ' unicodeKeyboard ' ] = 
desired_caps [ ' resetKeyboard ' ] = Trueの
ドライバ = webdriver.Remote(' HTTP://127.0 .0.1:8888 / WD /ハブ" 、desired_caps)
特定の要素が表示されるのを待っている明示的な待ち時間() ラムダ関数は、動的なランタイムを作成する方法を提供します。
WebDriverWait(ドライバー,. 3)(.until ラムダ X:x.find_element_by_id(com.cnblogs.android:id/TabSearch' ))。()をクリックし
driver.find_element_by_id(' com.cnblogs.android:id/TabSearch ' ).click()
time.sleep( 2 
driver.find_element_by_id(' com.cnblogs.android:id/txtSearch ")。 send_keys(' 方缘' 
driver.find_element_by_id(' com.cnblogs.android:id/search_btn ' ).click()
driver.quit()

 

おすすめ

転載: www.cnblogs.com/huainanhai/p/11831277.html