python+selenium切换窗口,两个窗口却只有一个句柄,问题在这里

在使用Python的Selenium库进行自动化测试时,遇到一个常见的问题:当打开新的浏览器窗口后,尝试切换窗口时,只找到一个窗口句柄。原因在于代码执行速度过快,新窗口还未完全生成。解决方法是在打开新窗口后加入time.sleep()延迟,确保新窗口创建完成后再获取句柄,从而成功切换窗口。

python+selenium切换窗口,两个窗口却只有一个句柄,问题在这里

问题:

两个窗口,使用一下代码打印所有窗口句柄,发现只打印出了一个句柄。

print(driver.current_window_handle) # 输出当前窗口句柄
handles = driver.window_handles # 获取当前全部窗口句柄集合
print(handles) # 输出句柄集合

在这里插入图片描述
在这里插入图片描述
解决办法
这是因为我再浏览器一打开第二个标签页的代码后面直接写了打印当前或所有窗口的句柄,这市第二个窗口还没有打开,因为代码的运行速度是很快的,这时windows还没有生成句柄。
我们在切换句柄前,加上sleep延时,等待新页面打开。

time.sleep(10)
print(driver.title)
print(driver.current_window_handle) # 输出当前窗口句柄
handles = driver.window_handles # 获取当前全部窗口句柄集合
print(handles) # 输出句柄集合
driver.switch_to.window(handles[-1])

再次运行,窗口切换成功。
在这里插入图片描述

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值