zzepish/phpcasperjs

简单的PHP封装CasperJS,用于自动化对网页进行用户测试。

v1.3.8 2018-11-17 15:21 UTC

README

Travis branch Packagist Version License

SensioLabsInsight

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']);