为什么不能在GhostDriver / PhantomJSDriver中禁用JavaScript?

时间:2015-01-05 18:09:20

标签: javascript selenium phantomjs ghostdriver

我想在特定页面上的PhantomJSDriver中禁用JavaScript,但是this link here表示不可能,因为“整个GhostDriver将变得无法使用”。

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

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

1 个答案:

答案 0 :(得分:3)

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

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

您可以做的就是创建屏幕截图(page.render())并盲目点击并输入(page.sendEvent())。这对于WebDriver协议来说还不够。