zzepish / phpcasperjs
简单的PHP封装CasperJS,用于自动化对网页进行用户测试。
v1.3.8
2018-11-17 15:21 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: 4.*
- squizlabs/php_codesniffer: 2.*
README
php-casperjs是一个简单的PHP封装库,用于优秀的CasperJS库,旨在自动化对网页进行用户测试。
它很容易集成到PHPUnit测试用例中。
制作网络爬虫从未如此简单!
安装
在使用php-casperjs之前,您需要安装以下库
1 - PhantomJS http://phantomjs.org/download.html
2 - CasperJS http://docs.casperjs.org/en/latest/installation.html
npm install phantomjs npm install casperjs
然后
composer require phpcasperjs/phpcasperjs
使用方法
<?php use Browser\Casper; $casper = new Casper(); // forward options to phantomJS // for example to ignore ssl errors $casper->setOptions([ 'ignore-ssl-errors' => 'yes' ]); // navigate to google web page $casper->start('http://www.google.com'); // fill the search form and submit it with input's name $casper->fillForm( 'form[action="/search"]', array( 'q' => 'search' ), true); // or with javascript selectors: $casper->fillFormSelectors( 'form.form-class', array( 'input#email-id' => 'user-email', 'input#password-id' => 'user-password' ),true); // wait for 5 seconds (have a coffee) $casper->wait(5000); // wait for text if needed for 3 seconds $casper->waitForText('Yahoo', 3000); // or wait for selector $casper->waitForSelector('.gbqfb', 3000); // make a screenshot of the google logo $casper->captureSelector('#hplogo', '/tmp/logo.png'); // or take a screenshot of a custom area $casper->capture( array( 'top' => 0, 'left' => 0, 'width' => 800, 'height' => 600 ), '/tmp/custom-capture.png' ); // click the first result $casper->click('h3.r a'); // switch to the first iframe $casper->switchToChildFrame(0); // make some stuff inside the iframe $casper->fillForm('#myForm', array( 'search' => 'my search', )); // go back to parent $casper->switchToParentFrame(); // run the casper script $casper->run(); // check the urls casper get through var_dump($casper->getRequestedUrls()); // need to debug? just check the casper output var_dump($casper->getOutput());
如果您想查看爬虫的实际运行情况,请将引擎设置为slimerjs
$casper = new Casper(); $casper->setOptions(['engine' => 'slimerjs']);