美文网首页
(php)selenium+phantomjs实现页面截图

(php)selenium+phantomjs实现页面截图

作者: someonemaybe | 来源:发表于2018-07-18 10:17 被阅读0次

    1.composer安装selenium:

    composer  require  facebook/webdriver

    2.安装phantomjs

    http://phantomjs.org/download.html 下载对应版本,并加入到环境变量

    3.下载Selenium Standalone Server(http://www.seleniumhq.org/download/ )。

    到命令提示符里启动以下命令(前提需要安装jdk,确保java命令能够运行)

    java -jar selenium-server-standalone-2.50.0.jar

    tip:最新版 selenium-server-standalone-3.13.0.jar 貌似放弃支持phantomjs了,所以用的低版本的

    贴代码:

    header("Content-Type: text/html; charset=UTF-8");

    $host = 'http://localhost:4444/wd/hub'; // this is the default

    $capabilities = DesiredCapabilities::phantomjs();

    $driver = RemoteWebDriver::create($host, $capabilities, 5000);

    $driver->get('https://www.zhihu.com/question/285353546/answer/443155679');

    $ele = $driver->findElement(WebDriverBy::className('QuestionMainAction'));

    $driver->executeScript("arguments[0].click();",[$ele]);

    //翻一页

    $js = "window.scrollTo(0,document.body.scrollHeight)"; //滚动至底部

    $driver->executeScript($js);

    $driver->takeScreenshot('test.png');

    //关闭浏览器

    $driver->quit();

    可实现用户点击事件,然后下拉到底,整页截图。(chromedriver等其他无头浏览器也可以实现截图,但是截的是一个屏幕的,不是整个页面的,有大神实现是用拼接的方式实现的,其他方法还没有发现)

    相关文章

      网友评论

          本文标题:(php)selenium+phantomjs实现页面截图

          本文链接:https://www.haomeiwen.com/subject/lqznpftx.html