【Python3 爬虫】U36_selenium打开多窗口和切换窗口

1.示例说明

有时候窗口中有很多子tab页面。这时候肯定是需要进行切换的。

selenium提供了一个叫做switch_to_window来进行切换,具体切换到哪个页面,可以从driver.window_handles中找到。示例代码如下:

# 打开一个新的页面
 
self.driver.execute_script("window.open('https://www.baidu.com')")
 
#显示当前页面的url
 
driver.current_url   //还是百度页面
 
# 切换到这个新的页面中
driver.switch_to.window(driver.window_handles[1])

2.实战演练

from selenium import webdriver

# chromedriver的绝对路径
driver_path = r'E:\Python\chromedriver.exe'

# 初始化一个driver,并且指定chromedriver的路径
driver = webdriver.Chrome(executable_path=driver_path)

# 请求网页
driver.get("https://www.baidu.com/")

driver.execute_script("window.open('http://www.hao6v.com')")

# 打印窗口句柄
print(driver.window_handles)

# 切换窗口
driver.switch_to.window(driver.window_handles[1])

print(driver.current_url)
print(driver.page_source)

# 虽然在窗口中切换到了新的页面,但是driver中还没切换
# 如果想要在代码中切换到新的页面,并爬取页面,那么应该使用driver.switch_to.window来切换到指定的窗口
# 从driver.window_handles中取出具体是 第几个窗口
# driver.window_handles是一个列表,里边存储的是窗口句柄。他会按照打开的顺序来存储窗口句柄
posted @ 2020-04-11 10:10  OLIVER_QIN  阅读(663)  评论(0编辑  收藏  举报