【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是一个列表,里边存储的是窗口句柄。他会按照打开的顺序来存储窗口句柄
作者:奔跑的金鱼
声明:书写博客不易,转载请注明出处,请支持原创,侵权将追究法律责任
个性签名:人的一切的痛苦,本质上都是对自己无能的愤怒
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!