2

我想在PhantomJSDriver特定页面上禁用 JavaScript,但是这里的这个链接说这是不可能的,因为“整个 GhostDriver 将变得不可用”。

有人可以解释一下,好像我已经 5 岁了,为什么会这样?

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

4

1 回答 1

3

GhostDriver 是用 JavaScript 编写的,它使用PhantomJS API将 WebDriver 有线协议命令转换为原生 PhantomJS 命令/调用。

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

您所能做的就是创建屏幕截图 ( page.render()) 并盲目地单击和键入 ( page.sendEvent())。这还不足以让 WebDriver 协议正常工作。

于 2015-01-05T20:37:36.777 回答