为什么无法在 GhostDriver / PhantomJSDriver 中禁用 JavaScript?

Why is not possible to disable JavaScript in GhostDriver / PhantomJSDriver?

我想在特定页面上禁用 PhantomJSDriver 中的 JavaScript,但是 this link here 说不可能,因为 "The whole GhostDriver will become unusable"。

谁能解释一下,我好像5岁了,为什么会这样?

我是否有任何选项可以以某种方式阻止 PhantomJSDriver 在页面上执行 JavaScript?

GhostDriver 是用 JavaScript 编写的,它使用 PhantomJS API 将 WebDriver 有线协议命令转换为本机 PhantomJS commands/calls。

PhantomJS 有两个上下文:驱动浏览器的外部(虚拟)上下文和执行页面 JavaScript 的内部(页面)上下文。如果在 PhantomJS 中禁用 JavaScript,则只会禁用页面上下文。您仍然可以做一些事情,但是您不能再使用 page.evaluate*(),这是进入页面上下文的大门。如果您仔细查看 PhantomJS API,您会发现有 no 函数可用于访问 DOM。这意味着您无法找到元素,无法查询元素的文本,无法更改元素,也无法知道单击元素的位置。

您所能做的就是创建屏幕截图 (page.render()) 以及盲目点击和输入 (page.sendEvent())。这不足以让 WebDriver 协议工作。