• 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、有了安装包和学习资料,没有项目实战怎么办,我这里都已经准备好了往下看

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

  • 相关阅读:
    MQ系列4:NameServer 原理解析
    简单高效记账本的具体操作方法
    牛客题目——链表中倒数最后k个结点、两个链表的第一个公共结点、二叉搜索树的最近公共祖先
    红黑树代码实现过程详解
    centos7安装MySQL5.7
    互联网时代的文学复兴:中文诗词大数据分析 | 开源日报 No.170
    棋盘覆盖(JavaScript)
    如何为 Kubernetes 监控安装 Pixie
    【C++】移动距离
    vscode编写verilog的插件【对齐、自动生成testbench文件】
  • 原文地址:https://blog.csdn.net/m0_59868866/article/details/127433408