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])
再次运行,窗口切换成功。

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

215

被折叠的 条评论
为什么被折叠?



