09-多窗口切换-window_handles

简介: 09-多窗口切换-window_handles

1. 常用方法

使用背景:有些网站点击链接会新打开一个tab,如下图打开了两个浏览器窗口;元素定位正确,调试时一直报错,原因是未切换到对应的窗口句柄,切换到对应的窗口句柄才可以正常操作

  • current_window_handle:获得当前窗口句柄
  • window_handles:获取所有窗口的句柄到当前会话,返回一个窗口句柄列表
  • switch_to.window():切换窗口句柄
1. # -*-coding:utf-8一*-
2. # @Time:2021/1/14
3. # @Author: 大海
4. import time
5. from selenium import webdriver
6. 
7. driver = webdriver.Chrome()
8. driver.implicitly_wait(10)
9. driver.get("http://www.baidu.com")
10. 
11. # 获得百度搜索窗口句柄
12. search_windows = driver.current_window_handle
13. print(search_windows)
14. 
15. driver.find_element_by_link_text('登录').click()
16. driver.find_element_by_link_text("立即注册").click()
17. 
18. # 获得当前所有打开的窗口的句柄
19. all_handles = driver.window_handles
20. print(all_handles)
21. 
22. # 切换到注册窗口 方式1 通过判断是否与当前窗口句柄一致
23. for handle in all_handles:
24. if handle != search_windows:
25.         driver.switch_to.window(handle)
26.         driver.find_element_by_name("userName").send_keys('我是测试小白')
27.         driver.find_element_by_name('phone').send_keys('12345678910')
28.         time.sleep(2)
29. # 后续步骤省略
30. 
31. # 切换到注册窗口 方式2 通过获取的所有窗口列表的索引切换
32. # driver.switch_to.window(all_handles[1])
33. # driver.find_element_by_name("userName").send_keys('我是测试小白')
34. # driver.find_element_by_name('phone').send_keys('12345678910')
35. # time.sleep(2)
36. 
37. driver.quit()


相关文章
electron设置window系统托盘
electron设置window系统托盘
175 0
|
C++ Windows
C++ Windows窗口程序:子窗口控件之按钮类button
C++ Windows窗口程序:子窗口控件之按钮类button
920 0
为什么会有window.window这种设计
为啥要搞这个这个看起来貌似很奇葩的设计。 要解答这个问题,还得请出this,我们经常说浏览器中的全局对象是window, 这句话对了,也还没完全对。 全局对象的真实身份应该是全局作用域的this。 window只是为了便于访问this,弄出来的一个属性。
316 0
为什么会有window.window这种设计
|
移动开发 Android开发 iOS开发
ReactNative切换Tab改变状态栏
Ready 现在大多数的ReactNative使用的路由都是react navigation.本示例就以react-navigation为例.解决其中遇到有需要切换tab来改变顶部状态栏字体以及背景色的需求 Go only have a single line of code componentDidMount() { this.
1397 0
window常用的快捷键
1、win+r打开运行命令   2、appwiz.cpl打开程序面板,进行程序的安装、卸载 输入win+r打开运行命令,输入appwiz.cpl   3、services.msc打开服务,一般用于启动或者关闭软件的服务 输入win+r打开运行命令,输入services.msc
780 0
|
C#
WPF Touch操作滚动条,Window弹跳
原文:WPF Touch操作滚动条,Window弹跳 WPF,用ScrollViewer控件,触屏开发,当滑动到最后时会使整个窗体弹跳一下 原因是因为ScrollViewer触屏操作原生支持惯性,ScrollViewer中的内容滚动到边界是会自动触发Window Bounce(窗体弹跳), 以叫做Panning Feedback(拖动回馈)。
1177 0