【发布时间】:2015-09-30 00:06:43
【问题描述】:
我正在使用 selenium python webdriver 来浏览一些页面。我想在加载和执行任何其他 Javascript 代码之前将 javascript 代码注入页面。另一方面,我需要将我的 JS 代码作为该页面的第一个 JS 代码执行。 Selenium 有没有办法做到这一点?
我用谷歌搜索了几个小时,但找不到任何正确的答案!
【问题讨论】:
-
但我的问题是如何在页面加载之前使用 Selenium Webdriver 注入 JS 代码。我无权访问这些页面的内容,因此除非我使用代理重写页面内容,否则我无法在其中注入 JS 代码。
-
我想,我找到了答案。根据grokbase.com/t/gg/selenium-users/12a99543jq/…,我们不能这样做,除非我们使用代理在页面开头注入脚本。
-
您能否安装一个应用程序,例如 GreaseMonkey 或 Tampermonkey 来注入您的脚本? addons.mozilla.org/en-us/firefox/addon/greasemonkey
-
是的,您可以通过自己的扩展程序或 GreaseMonkey 来完成。
-
如果你不使用物理显示器,使用 PhantomJS 之类的东西,你可以获得目标页面的 DOM。接下来,您可以遍历 DOM,注入您的脚本并添加一个
onLoad触发器以在页面加载时执行脚本。这是我认为发生的最直接的方式之一。
标签: javascript python selenium javascript-injection