1.ウィンドウの切り替え
- 開いているウィンドウハンドルの総数を取得してリストを返す
handles = driver.window_handles
- 最新のウィンドウハンドルに切り替える
driver.switch_to.window(handles [-1])
- オペレーションコードは次のとおりです。
1 インポート時間 2 からセレンインポートwebdriverを 3 から selenium.webdriver.support インポートexpected_conditions AS EC 4 から selenium.webdriver.support.wait インポートWebDriverWait 。5 から selenium.webdriver.common.by インポートすることにより 6 #ウィンドウ切り替え操作 。7ドライバ= webdriverを.chrome() 8 #Webページにアクセスするための 9 driver.get(" https://www.baidu.com " ) 10 driver.maximize_windowを() 11 driver.find_element_by_id(' kw ').send_keys(" lemon class " ) 12 driver.find_element_by_id(' su ' ).click() 13 WebDriverWait(driver、30).until(EC.visibility_of_element_located((By.XPATH、' // a [contains(text()、 "吧_百度贴吧")] ' ))) 14 driver.find_element_by_xpath(' // a [contains(text()、 "吧_百度贴吧")] ' ).click () 15 time.sleep(0.5) #の0.5秒待って、[OK]ページをクリックし開いている 16の #は、ブラウザを開くためにハンドルを取得し、リストを返す 17の =ハンドルをdriver.window_handles 18 print (handles) 19 driver.switch_to.window(handles [-1 ]) 20 #打印当前句柄 21 print (driver.current_window_handle) 22 #:Args:driver.switch_to.window(window_name) 23 # -window_name :切り替えるウィンドウの名前またはウィンドウハンドル。 24 WebDriverWait(driver、20).until(EC.visibility_of_element_located((By.XPATH、" // div [@ id = 'signstar_wrapper'] // a [@ title = '签到'] ")))#等待要素出现 25ドライバ.find_element_by_xpath("// div [@ id = 'signstar_wrapper'] // a [@ title = '签到'] " ).click() 26 WebDriverWait(driver、20).until(EC.visibility_of_element_located((By.ID、" TANGRAM__PSP_11__footerULoginBtn " ))) 27 driver.find_element_by_id(' TANGRAM__PSP_11__footerULoginBtn ' ).click() 28 driver.find_element_by_id(' TANGRAM__PSP_5__closeBtn ').click()
2.新しいウィンドウが使用できるように開かれているかどうかを確認する
EC.new_window_is_opened(current_handles)
オペレーションコードは次のとおりです。
1 インポート時間 2 からセレンインポートwebdriverを 3 から selenium.webdriver.support インポートexpected_conditions AS EC 4 から selenium.webdriver.support.wait インポートWebDriverWait 。5 から selenium.webdriver.common.by インポートすることにより 6 #ウィンドウ切り替え操作 。7ドライバ= webdriverを.chrome() 8 #Webページにアクセスするための 9 driver.get(" https://www.baidu.com " ) 10 driver.maximize_windowを() 11 driver.find_element_by_id(' kw ').send_keys(" lemon class " ) 12 driver.find_element_by_id(' su ' ).click() 13 WebDriverWait(driver、30).until(EC.visibility_of_element_located((By.XPATH、' // [(テキスト()が含まれ 、「 _百度バーバー')] ' ))) 14 #取得ウィンドウが新たなページを開く前に総柄を 15の =ハンドルをdriver.window_handles 16 driver.find_element_by_xpath(" [//含む(テキスト()、 "吧_百度贴吧")] ' ).click() 17 time.sleep(0.5)#0.5秒待ってから、[OK]ページをクリックし開いている 18 #新しいページを待っているが開き 19 WebDriverWait(ドライバ、20 (EC.new_window_is_opened(ハンドル)).until) 20の #は、ブラウザを開くためにハンドルを取得し、リストを返す 21のハンドル= ドライバを.window_handles 22は、 プリント(ハンドル) 23は、 #は、新しいハンドルに切り替え 24 driver.switch_to.window(ハンドル[-1 ]) 25 #印刷ハンドル 26が 印刷(driver.current_window_handle) 27 #(driver.switch_to.windowを:Argsは: window_name) 28 # -window_name:切り替えるウィンドウの名前またはウィンドウハンドル 29WebDriverWait(driver、20).until(EC.visibility_of_element_located((By.XPATH、" // div [@ id = 'signstar_wrapper'] // a [@ title = '签到'] ")))#等待要素出现 30 driver.find_element_by_xpath(" // div [@ id = 'signstar_wrapper'] // a [@ title = '签到'] " ).click() 31 WebDriverWait(driver、20).until(EC.visibility_of_element_located((By。 ID、" TANGRAM__PSP_11__footerULoginBtn " ))) 32 driver.find_element_by_id(' TANGRAM__PSP_11__footerULoginBtn ' ).click() 33 driver.find_element_by_id('TANGRAM__PSP_5__closeBtn ')。クリック()