2

Goutte Driver を使用して Mink 1.4 を使用しています

ページにいくつかのフォーム フィールド値を設定し、そのフォームを送信するボタンをクリックしようとしていました。

しかし、その後、このエラーが発生します

Fatal error: Uncaught exception 'Guzzle\Http\Exception\CurlException' with message ' in phar://C:/Documents and Settings/User/My Documents/Dropbox/kar_rental/inc/mink.phar/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlMulti.php on line 579

Guzzle\Http\Exception\CurlException: [curl] 60: SSL certificate problem, verify that the CA cert is OK...

CURLOPT_SSL_VERIFYPEERfalseに設定したので、SSL をチェックするべきではないと思いました。

これが私のコードです:

foreach ($this->_sites_data as $site_name => $site_data)
{
    // Instantiate Mink's Goutte Driver
    $clientOptions = array(
        'curl.options' => array(
            'CURLOPT_SSL_VERIFYPEER' => false,
            'CURLOPT_CERTINFO' => false,
            'CURLOPT_TIMEOUT' => 120
        ),
        'ssl.certificate_authority' => 'system'
    );

$client = new \Behat\Mink\Driver\Goutte\Client();
$client->setClient(new \Guzzle\Http\Client($site_data['form_data']['form_url'], $clientOptions));

$driver = new \Behat\Mink\Driver\GoutteDriver($client);

// Initialize Mink
$session = new \Behat\Mink\Session($driver);

// Start session
$session->start();

foreach ($site_data['form_data']['post_fields'] as $days => $post_fields)
{
    // Open form page
    $session->visit($site_data['form_data']['form_url']);
    $page = $session->getPage();

    foreach ($post_fields as $post_field_name => $post_field_value)
    {
        $el = $page->find('css', '#' . $post_field_name);
        $el->setValue($post_field_value);
    }

    $el = $page->find('css', $site_data['form_data']['submit_element_css']);
    $el->click();
}

$session->reset();

}

4

2 に答える 2

0

Goutte で SSL チェックを無効にする

behat.yml ファイルで

goutte: 
     guzzle_parameters:
           curl.options:
              CURLOPT_SSL_VERIFYPEER: false
              CURLOPT_CERTINFO: false
              CURLOPT_TIMEOUT: 120
           ssl.certificate_authority: false

それが失敗した場合は、これを試してください:

<?php
use Guzzle\Http\Client as GuzzleClient;
$client = new \Behat\Mink\Driver\Goutte\Client();
$gouttedriver = new \Behat\Mink\Driver\GoutteDriver(
    $client
);
$client->setClient(new GuzzleClient('', array(
     'curl.CURLOPT_SSL_VERIFYPEER' => false,
     'curl.CURLOPT_CERTINFO'       => false
    ))); 
于 2013-09-06T21:38:10.970 に答える