关闭窗口

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

WebDriver API 中的 Close Window(关闭窗口) 命令会关闭当前的顶级浏览上下文(窗口或标签页),并返回当前打开的 WebWindow 列表。如果关闭的是最后一个窗口,WebDriver 会话将被隐式删除。会话结束后,后续命令将导致无效会话 ID 错误。

语法

方法 URI 模板
DELETE /session/{session id}/window

URL 参数

session id

会话的标识符。

错误

无效的会话 ID

会话不存在。

意外的 alert 打开

用户提示(如 window.alert)会阻止命令执行,直到处理完毕。

示例

Python

python
from selenium import webdriver

session = webdriver.Firefox()
original_window = session.window_handle

new_window = session.execute_script("return window.open()")
session.switch_to.window(new_window)

session.close()
session.switch_to.window(original_window)

C#

cs
using OpenQA.Selenium.Firefox;

namespace MDNWebDriverExamples
{
    class Example
    {
        public static void Main(string[] args)
        {
            FirefoxDriver session = new FirefoxDriver();
            string original_window = session.CurrentWindowHandle;// Optional if you want to store the handle in a variable

            session.ExecuteScript("window.open()");
            session.SwitchTo().Window(session.WindowHandles[1]); // Switch to the second window

            session.Close(); // Close current window
            session.SwitchTo().Window(session.WindowHandles[0]); // Switch back to the first window
        }
    }
}

规范

规范
WebDriver
# close-window

浏览器兼容性

另见