javascript - 使用 Selenium Driver + PhantomJS 注入(inject) JavaScript 脚本并在 Python 中正确处理重定向

标签 javascript python selenium phantomjs

我的问题是:

我正在开发一个连接到 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/

相关文章:

javascript - 在 div 之间切换语言

javascript - jQuery 中选择器和条件的问题

python - 如何从数据框中将多个级别的聚合总和放入时间序列列中

Javascript 事件 - 同时按住 CTRL 键并将鼠标悬停在按钮上

Javascript 模式验证

Python:使用 os.walk 时找不到现有文件(IOError:[Errno 2])

python - openCV中numpy.uint8和numpy.int8的区别?

excel - 尝试使用 Selenium + Excel VBA 从 Chrome 浏览器中的网站抓取代码

python - 在 Selenium Python 中检查网站的 .readyState 的正确语法是什么?

Selenium RemoteWebdriver Edge 不起作用