在无头浏览器中异步打开页面(PhantomJS)

Opening pages asynchronously in headless browser (PhantomJS)

我正在通过 Python 通过 Selenium+Ghostdriver 使用 PhantomJS。

我希望同时加载多个页面,为此,我正在寻找一种异步方法来加载页面。

根据我的研究,PhantomJS 已经存在于一个单独的线程中并支持多个选项卡,所以我认为唯一缺少的部分是以非阻塞方式加载页面的方法。

欢迎任何解决方案,无论是我忽略的简单 Ghostdriver 方法,绕过 Ghostdriver 并直接与 PhantomJS 或其他无头浏览器交互。

感谢您的帮助和建议。

尤瓦尔

如果你想绕过ghostdriver,那么你可以直接在JavaScript或CoffeeScript中编写你的PhantomJS脚本。据我所知,除了使用您选择的语言 (python) 的不同线程外,无法使用 selenium webdriver 执行此操作。

如果你对它不满意,还有 CasperJS,它在编写脚本时比使用 selenium 更自由,但你只能使用 PhantomJS 或 SlimerJS。

我不太确定具体如何通过 Selenium/Ghostdriver 执行此操作,但如果您(或未来的读者)能够直接接触幻影脚本,那么解决方案很简单:

page.open(newUrl, ...);

"page.open()" 方法默认是异步的,应该可以满足您的需要。 - 自从您提出此问题以来已经过去了很长一段时间,因此不确定您是否需要帮助。但是,对于那些稍后可能会阅读本文的人,我再次希望这对您有所帮助!