51Testing软件测试论坛

标题: python+selenium获取不了句柄 [打印本页]

作者: 测试积点老人    时间: 2022-4-15 09:39
标题: python+selenium获取不了句柄

我在做selenium自动化时,本来是打开了13个句柄,要关闭后面11个句柄,但是偶尔会出错,于是,我用打印的方式,发现出错的时候,是因为我要获取【2:】除前两个以外的共11个句柄,但却只获取了10个,于是有一个句柄就无法关闭导致出错,最后,我尝试专门写了一个函数来关闭多余的句柄,然而,依然是获取不到句柄。如以下代码所示。

[attach]137328[/attach]

[attach]137329[/attach]

[attach]137330[/attach]

[attach]137331[/attach]
[attach]137332[/attach]




作者: 蓝瘦香菇    时间: 2022-4-16 23:13
由于不是很清楚关闭句柄的原因,这里提两点建议:
1、window_handler返回的列表是乱序的,[2:]的方式关闭句柄会不会关闭掉你不打算关闭的窗口?
2、可以将你需要保留的窗口句柄ID保存下来,当你需要关闭其他窗口时,可以试试如下方式:
# 存储原始窗口的 ID
    original_window = driver.current_window_handle
# 循环执行,直到找到一个新的窗口句柄
    for window_handle in driver.window_handles:
        if window_handle != original_window:
            driver.switch_to.window(window_handle)
            break
以上代码,摘抄至selenium官网  https://www.selenium.dev/zh-cn/d ... er/browser/windows/
关于window_handles 来源于 https://www.w3.org/TR/webdriver1/#get-window-handles
作者: qqq911    时间: 2022-4-18 11:19
获取全量再关闭试试
作者: jingzizx    时间: 2022-4-18 14:17
2楼的建议看看
作者: kallinr    时间: 2022-4-18 14:54
乱序了
作者: bellas    时间: 2022-4-18 15:08
一楼说的很详细,参考下一楼的看看




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2