0

Web サイトをロードするために 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 の未定義関数 GoutteClient() の呼び出し

これは次の行を指します:

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

インストールは、次のドキュメントを使用して行われました。

http://mink.behat.org/

この例は、次のドキュメントに従って実行されました。

https://github.com/Behat/ミンク

私が間違っている可能性があることについて何か提案はありますか?

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

ところで: GouteClientを初期化する必要はまったくありません。GouteDriverは問題なく動作するはずです。

Minkスタンドアロンの実際の例を次に示します:https ://github.com/jakzal/web-scraper-demo

于 2013-03-11T23:15:43.413 に答える