2013-05-21 3 views
1

Goutte 드라이버를 사용하여 Mink 1.4을 사용 중입니다.Mink - Goutte 드라이버 cURL SSL 오류

페이지에서 일부 양식 필드 값을 설정하고 해당 양식을 제출하는 버튼을 클릭하려고했습니다.

는하지만 난 내가 false로 CURLOPT_SSL_VERIFYPEER를 설정하기 때문에, 그것은 SSL을 확인하지해야 가정이 오류

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... 

를 얻을. 즉,이 시도에 실패하면

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

} 당신의 behat.yml 파일

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

에서

Goutte

에서

답변

0

안 SSL 검사 : 여기

내 코드입니다

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

Behat/Mink^1.6 및 Behat/mink-goutte-driver^1.2에서 작동하는 구성을 찾았습니다.

것은 구성 배열로 클라이언트 폭식하는 거짓 확인 전달된다 (=> 거짓 '확인')

$의 구성 = 어레이;

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

    $client->setClient(new \GuzzleHttp\Client(array(
     'verify' => false, 
    ))); 

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

    $session->start(); 

    $session->visit(YOUR_URL_COMES_HERE); 
    echo $session->getPage()->getOuterHtml(); 

    $session->stop(); 
: 여기

당신은 내 일반적인 사용 사례입니다