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

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实现页面截图)