我想在特定页面上的PhantomJSDriver
中禁用JavaScript,但是this link here表示不可能,因为“整个GhostDriver将变得无法使用”。
有人可以解释一下,好像我5岁,为什么会这样?
我是否可以选择以某种方式阻止PhantomJSDriver在页面上执行JavaScript?
答案 0 :(得分:3)
GhostDriver是用JavaScript编写的,它使用PhantomJS API将WebDriver有线协议命令转换为本机PhantomJS命令/调用。
PhantomJS有两个上下文:驱动浏览器的外部(幻像)上下文和执行页面JavaScript的内部(页面)上下文。如果在PhantomJS中禁用JavaScript,则仅禁用页面上下文。你仍然可以做一些事情,但你不能再使用page.evaluate*()
这是进入页面上下文的大门。如果仔细查看PhantomJS API,您会发现可以使用 no 函数来访问DOM。这意味着您无法找到元素,无法查询元素的文本,也无法更改元素,也无法知道元素在何处单击。
您可以做的就是创建屏幕截图(page.render()
)并盲目点击并输入(page.sendEvent()
)。这对于WebDriver协议来说还不够。