我的问题是:
我正在开发一个连接到 URL 的 Python 脚本,并使用 selenium 驱动程序,我设法注入(inject)一个 Javascript 文件,在该文件执行后,当前页面将被重定向。这一切都是使用 selenium 来处理 Firefox 来完成的:
driver = webdriver.Firefox();
,但是当我尝试使用 PhantomJS 作为浏览器时,因为它没有任何图形界面:
driver = webdriver.PhantomJS();
我无法正确处理响应。仍然没有发现驱动程序是否未正确注入(inject)脚本或者是否是响应处理问题。如果有人有任何想法,我们很高兴听到。
最佳答案
我在另一个问题上发布了此内容,但我认为这会有所帮助:
在我自己处理过同样的困境之后,我可以全心全意地推荐您将首选的 Selenium webkit(我的是 Chrome)与 XVFB 结合使用。 .
XVFB 允许您不经意地运行 Firefox、Chrome 等浏览器,这基本上消除了使用 PhantomJS 固有的所有错误。虽然它绝对是一件很棒的作品,但它的内部运作有时往往会产生不同的交互(例如,我遇到了一些问题,无法像在任何浏览器中那样从一个元素按 TAB 到另一个元素)。如果您使用 Jenkins,那么有一个非常棒的插件,只需单击一下按钮即可。否则,我绝对建议检查 this出来。
Phantom 确实很麻烦,所以绝对值得绕过它:)
希望这有帮助!
关于javascript - 使用 Selenium Driver + PhantomJS 注入(inject) JavaScript 脚本并在 Python 中正确处理重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31198167/