我想在PhantomJSDriver
特定页面上禁用 JavaScript,但是这里的这个链接说这是不可能的,因为“整个 GhostDriver 将变得不可用”。
有人可以解释一下,好像我已经 5 岁了,为什么会这样?
我是否有任何选项可以阻止 PhantomJSDriver 在页面上执行 JavaScript?
我想在PhantomJSDriver
特定页面上禁用 JavaScript,但是这里的这个链接说这是不可能的,因为“整个 GhostDriver 将变得不可用”。
有人可以解释一下,好像我已经 5 岁了,为什么会这样?
我是否有任何选项可以阻止 PhantomJSDriver 在页面上执行 JavaScript?
GhostDriver 是用 JavaScript 编写的,它使用PhantomJS API将 WebDriver 有线协议命令转换为原生 PhantomJS 命令/调用。
PhantomJS 有两个上下文:驱动浏览器的外部(幻影)上下文和执行页面 JavaScript 的内部(页面)上下文。如果您在 PhantomJS 中禁用 JavaScript,则仅禁用页面上下文。你仍然可以做一些事情,但你不能再使用page.evaluate*()
它是进入页面上下文的门。如果您仔细查看 PhantomJS API,您会发现没有可用于访问 DOM 的函数。这意味着您无法找到元素,无法查询元素的文本,无法更改元素,也无法知道单击元素的位置。
您所能做的就是创建屏幕截图 ( page.render()
) 并盲目地单击和键入 ( page.sendEvent()
)。这还不足以让 WebDriver 协议正常工作。