• Selenium基础 — 多窗口操作


    1、多标签/多窗口之间的切换

    场景:
    在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要切换到新打开的窗口上进行操作。这种情况下,需要识别多标签或窗口的情况。
    操作方法:

    • switch_to.window()方法:切换窗口。可以实现在不同的窗口之间切换。
    • current_window_handle: 获得当前窗口句柄。
    • window_handles: 获取所有窗口句柄。

    提示:句柄就可以理解成浏览器窗口的id值。

    操作说明:

    1. 获取所有窗口的句柄
      handles = driver.window_handlers
      调用该方法会得到一个列表,在selenium运行过程中的每一个窗口,都有一个对应的值存放在里面。
      (换句话说,有多少个窗口,就有多少个句柄)
    2. 通过窗口的句柄进入的窗口
      driver.switch_to_window(handles[n])

    2、练习

    1. """
    2. 1.学习目标:
    3. 必须掌握web中多窗口切换方法
    4. 2.语法(操作步骤)
    5. 2.1 获取当前窗口句柄
    6. driver.current_window_handle
    7. 2.2 点击页面中的超链接触发多窗口
    8. 2.3 获取所有窗口句柄
    9. driver.window_handles
    10. 2.4 进入新窗口
    11. switch_to.window(handles[1])
    12. 2.5 操作新窗口中的元素
    13. 按实际工作需求编写
    14. 2.6 退出新窗口
    15. switch_to.window(handles[0])
    16. 3.需求
    17. 在页面中,实现多窗口切换。
    18. """
    19. # 1.导入selenium
    20. from selenium import webdriver
    21. from time import sleep
    22. # 2.打开浏览器
    23. driver = webdriver.Chrome()
    24. # 3.打开我的Python文档页面
    25. url = "https://blog.csdn.net/Liuyuelinjiayou/article/details/105789238"
    26. driver.get(url)
    27. sleep(2)
    28. # 4. 多窗口切换操作
    29. # 4.1 获取当前窗口句柄
    30. handle = driver.current_window_handle
    31. print('点击之前的窗口句柄是:', handle)
    32. print('点击前的url:', driver.current_url)
    33. # 4.2 点击页面中的超链接触发多窗口
    34. driver.find_element_by_link_text("PyCharm下载与安装").click()
    35. sleep(2)
    36. # 4.2 获取所有窗口句柄
    37. handles = driver.window_handles
    38. # 4.3 进入新窗口
    39. driver.switch_to.window(handles[1])
    40. print('点击之后浏览器所有的窗口句柄是:', handles)
    41. print('点击后的url:', driver.current_url)
    42. # 4.5 退出新窗口
    43. # 你需要退到哪个窗口就写哪个窗口的handle索引
    44. # 因为handle在上边赋值等于第一个窗口了,这里就可以写handle
    45. # 也可以写handles[0]
    46. driver.switch_to.window(handle)
    47. sleep(10)
    48. # 5.关闭浏览器
    49. driver.quit()
    50. """
    51. 输出结果:
    52. 点击之前的窗口句柄是: CDwindow-6F1E6437F354913663E6A7E5A1486784
    53. 点击前的url: https://blog.csdn.net/Liuyuelinjiayou/article/details/105789238
    54. 点击之后浏览器所有的窗口句柄是: ['CDwindow-6F1E6437F354913663E6A7E5A1486784', 'CDwindow-48640D53F053821ED38D21B87E549A73']
    55. 点击后的url: https://blog.csdn.net/Liuyuelinjiayou/article/details/105729957
    56. """

    最后我这里给你们分享一下我所积累和真理的文档和学习资料有需要是领取就可以了

    1、学习思路和方法

    这个大纲涵盖了目前市面上企业百分之99的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。总共十个专题足够你学习

    2、想学习却无从下手,该如何学习?

    这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。

    3、软件测试/自动化测试【全家桶装】学习中的工具、安装包、插件....

    4、有了安装包和学习资料,没有项目实战怎么办,我这里都已经准备好了往下看

    最后送上一句话:
    世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。
    如果我的博客对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦

  • 相关阅读:
    Windows下载安装Vue开发者工具(VueDevtools)
    R语言使用epiDisplay包的aggregate函数将数值变量基于因子变量拆分为不同的子集,计算每个子集的汇总统计信息、计算单个连续变量的分组汇总统计信息
    Android11分区介绍
    计算机毕业设计ssm+vue基本微信小程序的体检预约小程序
    操作系统期末知识点复习
    SpringBoot( 整合篇 ==> springboot 2.7.x 整合 Swagger 3.0)
    ppcls,飞桨分类改写增加自己的预测txt 格式 python3 tools/infer.py
    iObjects C++许可模块划分
    计算机组成与结构
    leetcode279完全平方数刷题打卡
  • 原文地址:https://blog.csdn.net/m0_59868866/article/details/127433408