我正在尝试使用Behat / Mink来加载网站。
我已经使用Composer进行安装,这是我的composer.json:
{
"require": {
"behat/mink": "*",
"behat/mink-goutte-driver": "*",
"behat/mink-selenium-driver": "*",
"behat/mink-selenium2-driver": "*",
"behat/mink-sahi-driver": "*",
"behat/mink-zombie-driver": "*"
}
}
为了进行安装,我运行了以下命令:
$ curl http://getcomposer.org/installer | php
$ php composer.phar install
所有内容都安装顺利,没有任何错误消息。
这是我的index.php文件:
require 'vendor/autoload.php';
use Behat\Mink\Mink,
Behat\Mink\Session,
Behat\Mink\Driver\GoutteDriver,
Behat\Mink\Driver\Goutte\Client as GoutteClient,
Behat\Mink\Driver\SahiDriver;
$startUrl = 'www.example.com';
// init Mink and register sessions
$mink = new Mink(array(
'goutte1' => new Session(new GoutteDriver(GoutteClient($startUrl))),
'goutte2' => new Session(new GoutteDriver(GoutteClient($startUrl))),
'javascript' => new Session(new SahiDriver('firefox')),
'custom' => new Session(new MyCustomDriver($startUrl))
));
我尝试使用此命令运行它:
$ php index.php
但是我收到以下错误消息:
PHP致命错误:调用未定义的函数GoutteClient() 第14行的index.php
这是指这一行:
'goutte1' => new Session(new GoutteDriver(GoutteClient($startUrl))),
使用以下文档完成安装:
示例是在文档之后完成的:
关于我可能做错什么的任何建议?
答案 0 :(得分:1)
您在 GoutClient 之前忘记了“new”关键字。你应该写:
$mink = new Mink(array(
'goutte1' => new Session(new GoutteDriver(new GoutteClient($startUrl))),
'goutte2' => new Session(new GoutteDriver(new GoutteClient($startUrl))),
'javascript' => new Session(new SahiDriver('firefox')),
'custom' => new Session(new MyCustomDriver($startUrl))
));
BTW:您根本不必初始化 GouteClient , GouteDriver 应该可以正常工作。
以下是Mink独立的一个工作示例:https://github.com/jakzal/web-scraper-demo