selenium switch_to.window 无法切换到最新打开的窗口

在编写一个RPA流程的过程中,要新打开一个窗口,然后切换到这个最新打开的窗口。使用selenium内置方法进行切换,发现还是停留在原有界面,并没有切换过去。原因为最新打开的窗口并不一定就是最后的窗口。
目前通过两种方式进行解决:

  1. 在未打开新窗口前,获取所有窗口的句柄,在打开新窗口后,再获取所有窗口的句柄,通过比较两个窗口句柄进行页面切换
current_window_handles = driver.window_handles # 打开新窗口前所有的窗口
driver.find_element_by_xpath('//a[text()="登录"]')# 这里通过点击等方式会打开一个新的窗口
new_window_handles = driver.window_handles
for window_handle in new_window_handles:
	if window_handle not in current_window_handles:
		driver.switch_to.window(window_handle)


  1. 如果新打开页面的title固定或者包含固定的文字,那么通过遍历所有窗口,切换到你想要的title的窗口
window_handles = driver.window_handles
for window_handle in window_handles:
	driver.switch_to.window(window_handle)
	if window_handle.title in "这里是网站title":
		break 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值