场景:
在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要切换到新打开的窗口上进行操作。这种情况下,需要识别多标签或窗口的情况。
操作方法:
switch_to.window()
方法:切换窗口。可以实现在不同的窗口之间切换。current_window_handle
: 获得当前窗口句柄。window_handles
: 获取所有窗口句柄。提示:句柄就可以理解成浏览器窗口的id值。
操作说明:
handles = driver.window_handlers
driver.switch_to_window(handles[n])
- """
- 1.学习目标:
- 必须掌握web中多窗口切换方法
- 2.语法(操作步骤)
- 2.1 获取当前窗口句柄
- driver.current_window_handle
- 2.2 点击页面中的超链接触发多窗口
- 2.3 获取所有窗口句柄
- driver.window_handles
- 2.4 进入新窗口
- switch_to.window(handles[1])
- 2.5 操作新窗口中的元素
- 按实际工作需求编写
- 2.6 退出新窗口
- switch_to.window(handles[0])
- 3.需求
- 在页面中,实现多窗口切换。
- """
- # 1.导入selenium
- from selenium import webdriver
- from time import sleep
-
- # 2.打开浏览器
- driver = webdriver.Chrome()
-
- # 3.打开我的Python文档页面
- url = "https://blog.csdn.net/Liuyuelinjiayou/article/details/105789238"
- driver.get(url)
- sleep(2)
-
- # 4. 多窗口切换操作
- # 4.1 获取当前窗口句柄
- handle = driver.current_window_handle
- print('点击之前的窗口句柄是:', handle)
- print('点击前的url:', driver.current_url)
-
- # 4.2 点击页面中的超链接触发多窗口
- driver.find_element_by_link_text("PyCharm下载与安装").click()
- sleep(2)
-
- # 4.2 获取所有窗口句柄
- handles = driver.window_handles
-
- # 4.3 进入新窗口
- driver.switch_to.window(handles[1])
- print('点击之后浏览器所有的窗口句柄是:', handles)
- print('点击后的url:', driver.current_url)
-
- # 4.5 退出新窗口
- # 你需要退到哪个窗口就写哪个窗口的handle索引
- # 因为handle在上边赋值等于第一个窗口了,这里就可以写handle
- # 也可以写handles[0]
- driver.switch_to.window(handle)
- sleep(10)
-
- # 5.关闭浏览器
- driver.quit()
-
- """
- 输出结果:
- 点击之前的窗口句柄是: CDwindow-6F1E6437F354913663E6A7E5A1486784
- 点击前的url: https://blog.csdn.net/Liuyuelinjiayou/article/details/105789238
- 点击之后浏览器所有的窗口句柄是: ['CDwindow-6F1E6437F354913663E6A7E5A1486784', 'CDwindow-48640D53F053821ED38D21B87E549A73']
- 点击后的url: https://blog.csdn.net/Liuyuelinjiayou/article/details/105729957
- """
最后我这里给你们分享一下我所积累和真理的文档和学习资料有需要是领取就可以了
这个大纲涵盖了目前市面上企业百分之99的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。总共十个专题足够你学习
这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。
最后送上一句话:
世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。
如果我的博客对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦