Edge Selenium shows the error: "Message: The specified window could not be found."

Edge Selenium shows the error: "Message: The specified window could not be found."

我使用 selenium 和 edge。

from selenium import webdriver

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

当我打开边window时,它会显示 selenium.common.exceptions.NoSuchWindowException: Message: The specified window could not be found.当我运行这段代码时

换句话说,如果我运行这段代码在没有边window的时候,它运行无一例外。

当我打开边缘时,我怎么能运行 selenium with edge window?

关于 Edge 版本:

Microsoft Edge 44.18362.449.0
Microsoft EdgeHTML 18.18362

from selenium import webdriver

driver = webdriver.Edge()

driver.get("xxxxx")

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

请检查您的代码,是否要将句柄切换到另一个window?一般当window要切换的目标不存在时会抛出这个异常,可以查看this article.

此外,根据您的描述,如果没有Edge window,代码运行良好,无一例外。我想也许有一些进程正在使用现有的 Edge 浏览器进行自动化测试 window。或者,现有的 Edge 浏览器 window 被 selenium Edge web 驱动程序打开,但没有关闭,因此,它会显示此异常。

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

此外,我建议你可以尝试参考下面的代码,使用try语句捕获异常,记得添加以在自动化测试结束时关闭关闭浏览器会话。

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("*******************") 

在我们的案例中,我们关闭了打开的 Edge 浏览器并重新 运行 测试。这有效!