说明:本篇博客基于selenium 4.1.0

场景说明

场景:点击某个按钮后,页面是在一个新的浏览器中出现。如百度的’更多’按钮
问题:浏览器可能自动切换到了新页面,但是selenium的driver还停留在旧页面,导致无法操作新页面
解决:使用selenium的窗口切换功能,切换到新页面之后再进行操作

切换步骤

# 步骤1:获取窗口句柄
windows = driver.window_handles       # 返回的是一个句柄列表,列表排序为当前窗口顺序# 步骤2:切换到新窗口
driver.switch_to.window(windows[-1])  # 新窗口通常为最后一个,若为其他位置则自行处理

示例

import time
from selenium import webdriver
from selenium.webdriver.common.by import Bydriver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get('https://www.baidu.com/')# 点击'更多'打开新窗口
driver.find_element(By.CSS_SELECTOR, '[name="tj_briicon"]').click()
print(driver.title)    # 输出结果:百度一下,你就知道  -> 浏览器切到了新窗口,但selenium还没有# 切换窗口
windows = driver.window_handles
driver.switch_to.window(windows[-1])
print(driver.title)    # 输出结果:百度产品大全       -> 切到新窗口成功time.sleep(5)
driver.quit()

更多技术文章

selenium窗口切换相关推荐

  1. Selenium 窗口切换

    在浏览网页的时候,有时点击一个链接或者按钮,会弹出一个新的窗口. 使用 Selenium 进行 Web 自动化测试,如果弹出新窗口时,没有对窗口进行切换,那么,WebDriver 对象 的焦点对应的, ...

  2. selenium窗口切换和关闭指定窗口

    ws=driver.window_handles[] driver.switch_to.window(ws) ws=driver.window_handles[] 获得指定索引窗口句柄 driver. ...

  3. Python+Selenium学习笔记8 - 多表单多窗口切换

    1.多表单切换 下图为待测页面:内嵌百度首页 切换到百度首页进行操作 1 #coding = utf-8 2 3 from selenium importwebdriver4 importos5 im ...

  4. python页面切换_Python+Selenium学习--窗口切换及操作元素

    场景 有时候我们在测试一个web 应用时会出现多个浏览器窗口的情况,在selenium1.0 中这个问题比较难处理.webdriver 提供了相关相方法可以很轻松的在多个窗口之间切换并操作不同窗口上的 ...

  5. python3 + selenium 之窗口切换

    窗口切换 此代码来源学习后对淘宝操作实践记录: 以下代码在Chrome61和IE11上正常运行,Firefox5.7上运行存在一些问题须改进,应该是火狐不兼容差link_text部分和循环经常报错,在 ...

  6. 【Selenium】切换/窗口切换

    文章目录 1 frame切换 1.1 切换到frame 1.2 切回原来的主html 1.3 示例 2 窗口切换 2.1 切换新窗口 2.2 切回原来的窗口 2.3 示例 1 frame切换 1.1 ...

  7. selenium 自动化 携带cookies模拟登陆哔哩哔哩并发送弹幕和评论(解决多窗口切换、规避检测、评论无法输入等问题)

    获取cookies之后就可以自动登陆到哔哩哔哩,点击搜索到的视频,然后输入弹幕,发送弹幕,再点击评论,发送评论,这里有个问题就是运行几次之后发现评论直接sed_keys的话,会出现输入不进去的情况,然 ...

  8. python selenium元素定位、alert操作、iframe切换、多窗口切换、键盘操作、鼠标操作、js操作、操作本地文件、css高级操作

    用了那么久的selenium,整理一篇自己经常用到的标签和方法 本文档持续更新优化,喜欢的小伙伴可以点赞收藏一下 文章目录 1. 通用元素定位方法,需要引入By. 2. 通用多个元素查找By 3. c ...

  9. Web自动化测试Selenium(4)frame切换/窗口切换/选择框-2021-10-09

    1. frame切换 1.1 问题描述 选择 class 属性值为 plant 的元素. elements = wb.find_element_by_css_selector('.plant') 表示 ...

最新文章

  1. java中JUnit单元测试的使用方法
  2. (0041) iOS 开发之几家第三方即时通讯
  3. js数组循环删除元素或对象
  4. java学习之数组(二)
  5. HttpWebRequest post上传文件
  6. 接上一篇--最小生成树之Prim算法(根据点来实现最小生成树)
  7. 【BZOJ3781】小B的询问 莫队
  8. 经典机器学习系列(八)【支持向量机】
  9. react - next.js 引用本地图片和css文件
  10. KeyPass密码管理软件使用说明
  11. 易编远航第三期第3期第4套-游戏大厅脚本开发集合
  12. html5仿微博代码仿新浪微博,CSS3网页制作实例:模仿新浪微博首页变化_css
  13. 加速度随机游走_怎么才能形象的说明IMU的bias随机游走?
  14. Android 图片选取画图案
  15. 用于即使在太空中也能随时随地进行编码的移动应用程序
  16. 自适应滤波(LMS,RLS)
  17. 129.s1-拦截黑名单的电话,Android Studio使用aidl
  18. 手机6120C 玩仙剑dos版
  19. 键盘事件keydown、keypress、keyup随笔整理总结
  20. 读书笔记-《我的第一本算法书》

热门文章

  1. 基于STM32的STM8脱机编程器 烧录器
  2. 2017年第四届C/C++ A组蓝桥杯省赛真题
  3. 以“微”知著,用友ISV生态的力量与担当
  4. 黑莓省电模式 for BlackBerry 9900 9930 9850 OS7 1
  5. QCM学习—基于QT自制上位机(多线程)
  6. WebView跳转系统浏览器下载apk
  7. SVN版本回退 revert to this revision
  8. 借数字化东风带动营收增长,百融云创深耕金融SaaS成效如何?
  9. 怎么用计算机算延偶系数,屋面延尺系数,偶延尺系数有何区别工程量如何计算c...
  10. rust建好友服务器_可自建中继服务器的远程桌面软件: RustDesk