首页 > 解决方案 > Edge Selenium 显示错误:“消息:找不到指定的窗口。”

问题描述

我使用带边缘的硒。

from selenium import webdriver

driver = webdriver.Edge()
driver.get("xxxxx")

当我打开一个边缘窗口时,它将 selenium.common.exceptions.NoSuchWindowException: Message: The specified window could not be found.在我运行此代码时显示。

换句话说,如果我在没有边缘窗口的情况下运行这段代码,它运行良好,无一例外。

当我打开边缘窗口时,如何使用边缘运行 selenium?

关于Edge版本:

Microsoft Edge 44.18362.449.0
Microsoft EdgeHTML 18.18362

标签: pythonpython-3.xseleniummicrosoft-edge

解决方案


从硒导入网络驱动程序

驱动程序 = webdriver.Edge()

driver.get("xxxxx")

我已经测试了上面的代码,但无法重现该问题。据我所知,当我们将 selenium Edge webdriver 与旧版 Edge(Microsoft Edge 44.18362.449.0)一起使用时,它会自动关闭现有的 Edge 实例。

请检查您的代码,是否要将句柄切换到另一个窗口?一般情况下,当要切换的窗口目标不存在时会抛出这个异常,你可以查看这篇文章

另外,根据您的描述,如果没有Edge窗口,代码运行良好,无异常。我想也许有一些过程正在使用现有的 Edge 浏览器窗口进行自动化测试。或者,现有的 Edge 浏览器窗口被 selenium Edge Web 驱动程序打开,并且没有关闭,所以它会显示这个异常。

要解决此问题,我们需要关闭 Edge 浏览器窗口或 Edge 浏览器进程(从任务管理器)。

此外,我建议您可以尝试参考以下代码,使用 try 语句捕获异常,并记得在自动化测试结束时添加close() 和 quit() 方法来关闭关闭浏览器会话。

import time
from selenium import webdriver 

print("*******************")

try:
    driver = webdriver.Edge();

    driver.get("https://www.bing.com")
    time.sleep(5)
    driver.close()
    driver.quit()
except NoSuchWindowException:
    print("Window disappeared, seems like it was closed manually") 

print("*******************") 

推荐阅读