Implementation of Selenium Multi window Switching in Python Crawler

  • 2021-08-12 03:00:44
  • OfStack

In the process of page operation, sometimes clicking a link will pop up a new window, but because all the operations of Selenium are carried out on the first open page, it is necessary for the host to switch to the newly opened window for operation. WebDriver provides the switch_to. window () method to switch between different windows. Take Baidu homepage and Baidu registration page as examples, switch between two windows.

The key methods used in this chapter are as follows:

current_window_handle: Get the current window handle window_handles: Returns handles to all windows to the current session switch_to. window (): Used to switch to the appropriate window

Jump to the registration page, then get handles to all pages and print title for each page


from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

time.sleep(2) # Sleep for two seconds and watch 1 Lower effect 

driver.find_element_by_link_text(' Login ').click()

time.sleep(2) # Sleep for two seconds and watch 1 Lower effect 

driver.find_element_by_link_text(" Register now ").click()

time.sleep(2) # Sleep for two seconds and watch 1 Lower effect 

#  Get the current window handle 
sreach_windows = driver.current_window_handle

#  Gets the handles to all currently open windows 
all_handles = driver.window_handles
for handle in all_handles:
 if handle != sreach_windows:
  driver.switch_to.window(handle)
  print(driver.title)
 else:
  print(' Current page title : %s'%driver.title)

driver.quit()

Selenium Collection Portal:

标题 简介
Python爬虫 - Selenium(1)安装和简单使用 详细介绍Selenium的依赖环境在Windows和Centos7上的安装及简单使用
Python爬虫 - Selenium(2)元素定位和WebDriver常用方法 详细介绍定位元素的8种方式并配合点击和输入、提交、获取断言信息等方法的使用
Python爬虫 - Selenium(3)控制浏览器的常用方法 详细介绍自定义浏览器窗口大小或全屏、控制浏览器后退、前进、刷新浏览器等方法的使用
Python爬虫 - Selenium(4)配置启动项参数 详细介绍Selenium启动项参数的配置,其中包括无界面模式、浏览器窗口大小设置、浏览器User-Agent (请求头)等等
Python爬虫 - Selenium(5)鼠标事件 详细介绍鼠标右击、双击、拖动、鼠标悬停等方法的使用
Python爬虫 - Selenium(6)键盘事件 详细介绍键盘的操作,几乎包含所有常用按键以及组合键
Python爬虫 - Selenium(7)多窗口切换 详细介绍Selenium是如何实现在不同的窗口之间自由切换
Python爬虫 - Selenium(8)frame/iframe表单嵌套页面 详细介绍如何从当前定位的主体切换为frame/iframe表单的内嵌页面中
Python爬虫 - Selenium(9)警告框(弹窗)处理 详细介绍如何定位并处理多类警告弹窗
Python爬虫 - Selenium(10)下拉框处理 详细介绍如何灵活的定位并处理下拉框
Python爬虫 - Selenium(11)文件上传 详细介绍如何优雅的通过send_keys()指定文件进行上传
Python爬虫 - Selenium(12)获取登录Cookies,并添加Cookies自动登录 详细介绍如何获取Cookies和使用Cookies进行自动登录
Python爬虫 - Selenium(13)设置元素等待 详细介绍如何优雅的设置元素等待时间,防止程序运行过快而导致元素定位失败
Python爬虫 - Selenium(14)窗口截图 详细介绍如何使用窗口截图
Python爬虫 - Selenium(15)关闭浏览器 详细介绍两种关闭窗口的区别


Related articles: