A、ウェブはiframeウィンドウはウィンドウを切り替えます
まず、IFRAME HTML版は、HTMLページ内にあります。
あなたは、この操作に必要なiframeをして動作させる要素が発生した場合。
ステップ:
要素1)はIFRAME電流で動作するように、測位方法の要素を使用して決定することができるか否かを判断します。
2)要素が存在する場合が判定されます。これは、IFRAMEに切り替える必要性を決定します。
3)ハンドオーバー方法。
1 driver.switch_to.frame()
パラメータは、IFRAMEに切り替えるかを決定するための3つの方法をサポートしています。
1 #1)0 IFRAME添字から 2 driver.switch_to.frame(3 ) 。3 。4 #2)属性名IFRAME要素 。5 driver.switch_to.frame(" login_frame_qq " ) 。6 。7 #3)webElmentこのiframe要素。 。8 。9 driver.switch_to.frame(driver.find_element_by_xpath(" //アイフレーム)[名= "login_frame_qq" @])
具体的な実装方法:
1)訪問したページを開きます。
2)素子の位置決め動作、IFRAMEにページを有します。
3)操作は、IFRAMEを持っているページ、およびその後の操作に、このIFRAMEの要素を見つけて動作します。
その中に次の世代は、HTML IFRAMEウィンドウ4)スイッチ
driver.switch_to.frame( "IFRAMEウィンドウ_名")
5)動作要素firameウィンドウ内に配置。
第一世代-デフォルトのHTMLページへの6)バック
driver.switch_to.default_content()
レベルはiframe 7)バック-前世代
driver.switch_to.parent_frame()
例:参照だけのために。
インポート時 から セレンをインポート webdriverを から selenium.webdriver.common.by インポートすること から selenium.webdriver.support.wait インポートWebDriverWait から selenium.webdriver.support インポートexpected_conditions EC AS #1、教室へのテンセントのオープンアクセス ドライバ= webdriver.Chrome() driver.maximize_window() driver.get(" https://ke.qq.com/ " ) #2、現在のページを見つけるのXPathログインボタンに応じて、QQのログインウィンドウを入力するためにログインをクリックして LOCを=(By.XPATH、" // A [ID = "js_login" @] " ) WebDriverWait(ドライバー、10 ).until(EC.visibility_of_element_located(LOC)) driver.find_element_by_xpath(' // A [@ ID = "js_login"] ' ).click() #1秒間待つことを余儀なく。3、 time.sleep(1 ) #4、新しいポップでQQのログインボタンを見つけ、QQのログインアカウントのパスワード入力ボックスの入力します LOC2 =(、By.XPATHを' // I [クラス= "フォント-I-アイコンQQ" @] ' ) WebDriverWait(ドライバー、 10 ).until(EC.visibility_of_element_located(LOC2)) driver.find_element_by_xpath(' // I [クラス@ = "フォントアイコンQQ-I"] ' ).click() #5、QQのアカウントのログインウィンドウの LOC3 =(BY .XPATH、「名前= "login_frame_qq" @ //アイフレーム[)' WebDriverWait(ドライバ、 10 ).until(EC.visibility_of_element_located(LOC3)) driver.find_element_by_xpath(' // IFRAME [@名= "login_frame_qq"] ' ).click() #6、新しいiframeのウィンドウに切り替える ドライバー。 switch_to.frame(" login_frame_qq " ) #7、ログインウィンドウがにQQ QQのアカウント情報を配置されている (、By.XPATH LOC4 = ' // * [ID @ = "img_out_1xxxx"] ' ) WebDriverWait(ドライバー、 20ある.until)( EC.visibility_of_element_located(LOC4)) driver.find_element_by_xpath(' // * [ID @ = "img_out_1xxxx"] ' )。クリック() #9、セッション終了 time.sleep(10) driver.quit()
スイッチングウィンドウのWebの二つ、アラート(ポップ)
何度も我々はポップ遭遇し、ページのポップ操作上で動作するためでなければなりません。ページの要素のいずれよりも高い優先度をポップアップ。
ここでは、ウィンドウのこのタイプで動作。
ステップ:
1)トリガー操作をクリックして、トリガーのポップアップが表示されます。
1 driver.find_element_by_id(" プレス").click()
2)待機ポップが発生します。
3)操作は、ポップするために切り替えられます。
1 driver.switch_to.alert
4)ポップオフ、次のページの処理動作
1枚の プリント(alert.text) 2 alert.accept
例:
1 "" " 2つの Alertクラス 3。 " "" 4。 インポート時間 5。 6。 から セレンインポート webdriverを 7。 8。ドライバ= webdriver.Chrome() 9。 driver.get(" E:\ワークスペース\ Pythonの\ウェブ\ class_05_0307 \ MyHtml.html " ) 10 。11 #のクリックアクションが表示されますトリガ遊んブロックに 12ある driver.find_element_by_id(" プレス" ).click() 13である #待ち時間が発生するポップ 14(time.sleepを。1 ) 15 16 #のハンドオーバポップ 17警告= driver.switch_to.alert 18である 。19 #はポップオフし、次のページの処理 20は、 プリント(alert.text) 21である (alert.accept) 22である 23である #閉じるセッション 24が time.sleep(5 ) 25ドライバ.quit()