我想在特定页面上的 PhantomJSDriver
中禁用 JavaScript,但是 this link here说这是不可能的,因为“整个 GhostDriver 将变得无法使用”。
有人可以解释一下吗,好像我才5岁,为什么会这样?
我是否有任何选项可以阻止 PhantomJSDriver 在页面上执行 JavaScript?
最佳答案
GhostDriver 是用 JavaScript 编写的,它使用 PhantomJS API将 WebDriver 线路协议(protocol)命令转换为 native PhantomJS 命令/调用。
PhantomJS 有两个上下文:驱动浏览器的外部(幻像)上下文和执行页面 JavaScript 的内部(页面)上下文。如果您在 PhantomJS 中禁用 JavaScript,则仅禁用页面上下文。您仍然可以做一些事情,但是您不能再使用 page.evaluate*() 了,这是进入页面上下文的大门。如果您仔细研究 PhantomJS API,您会发现没有函数可用于访问 DOM。这意味着您无法找到元素,无法查询元素的文本,无法更改元素,并且无法知道在哪里单击元素。
您所能做的就是创建屏幕截图 (page.render()
) 并盲目单击并输入 (page.sendEvent()
)。这不足以让 WebDriver 协议(protocol)正常工作。
关于javascript - 为什么无法在 GhostDriver/PhantomJSDriver 中禁用 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27785320/