API指定了将所需功能传递给构造函数。但是,可能是驱动程序不支持所需功能中要求的功能。在这种情况下,驱动程序不会抛出任何错误,这是有意的。会话返回一个功能对象,该对象指示该会话实际支持的功能。
这就是这种情况下实际发生的情况。PhantomJS驱动程序不支持处理警报,如源代码中所示,返回的功能对象表明了很多。在大多数语言绑定中,此返回的功能对象是只读的。在返回的对象可能是读写的语言绑定中,修改这些功能对会话没有实际影响。在未完成的W3C WebDriver规范中,有一个requiredCapabilities
设置,如果服务器无法提供该功能,则会抛出异常,但是据我所知,尚未由任何驱动程序实现。