0

我正在尝试使用 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 致命错误:在第 14 行的 index.php 中调用未定义函数 GotteClient()

指的是这一行:

'goutte1'    => new Session(new GoutteDriver(GoutteClient($startUrl))),

安装是使用以下文档完成的:

http://mink.behat.org/

该示例是按照文档完成的:

https://github.com/Behat/Mink

关于我可能做错了什么的任何建议?

4

1 回答 1

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

顺便说一句:您根本不必初始化GouteClientGuteDriver应该可以正常工作。

这是 Mink 独立的工作示例:https ://github.com/jakzal/web-scraper-demo

于 2013-03-11T23:15:43.413 回答