2016-04-20 14 views
1

Ich habe versucht, dies herauszufinden, für 3 Stunden, und kann nicht zu verstehen, warum dies nicht funktioniert. Mein Selenserver startet gut.Erhalten Sie einen fatalen Fehler, wenn Sie versuchen, Behat mit Selenium

Wenn ich Behat mit Selen laufen behalte ich auf meinem Terminal den folgenden Fehler bekommen

Fatal error: Call to a member function open() on null (Behat\Testwork\Call\Exception\FatalThrowableError) 

Ich bin nicht, was diese Fehlermeldung bedeutet. Wenn jemand mir helfen könnte, dies herauszufinden, würde ich es sehr schätzen.

Hier unten ist meine Funktionen Kontext Code, wo das Problem etwas

use Behat\Behat\Tester\Exception\PendingException; 
use Behat\Behat\Context\Context; 
use Behat\Behat\Context\SnippetAcceptingContext; 
use Behat\Gherkin\Node\PyStringNode; 
use Behat\Gherkin\Node\TableNode; 
use Behat\MinkExtension\Context\MinkContext; 
use Behat\Mink\Driver\Selenium2Driver; 

/** 
* Defines application features from the specific context. 
*/ 
class FeatureContext extends MinkContext implements Context, SnippetAcceptingContext 
{ 

    public $session; 

    public function __construct() 
    { 


     $driver = new \Behat\Mink\Driver\Selenium2Driver('firefox'); 
     $this->session = new \Behat\Mink\Session($driver); 
    } 



} 
+0

Erste schnelle Aufnahme im Dunkeln: macht die Aufrüstung von Selen und Firefox einen Unterschied? – alecxe

+0

Dies ist nicht, wie Sie Nerz mit Behat verwenden. Lesen Sie zuerst die Dokumentation https://github.com/Behat/MinkExtension/blob/master/doc/index.rst –

+0

Welche Version von Behat verwenden Sie? 2.5.3 oder 3.0+? –

Antwort

0

Machen Sie es wie unten passiert:

class FeatureContext extends MinkContext 
{ 
    public function __construct() 
    { 
     // Don't do anything with session or driver here 
    } 

    /** 
    * @Then /^I need selenium driver for this step$/ 
    */ 
    public function iNeedSeleniumDriverForThisStep() 
    { 
     $driver = $this->getSession()->getDriver(); 

     if (!$driver instanceof Selenium2Driver) { 
      throw new UnsupportedDriverActionException('Selenium2Driver not installed.'); 

      return; 
     } 

     // ...... 
     // ...... 
     // Do whatever you want 
    } 
} 

Beispiel behat.yml

default: 
    context: 
     class: FeatureContext 
    extensions: 
     Behat\Symfony2Extension\Extension: 
      mink_driver: true 
      kernel: 
       env: test 
       debug: true 
     Behat\MinkExtension\Extension: 
      base_url: 'http://symfony.local/app_test.php/' 
      files_path: %behat.paths.base%/build/dummy/ 
      javascript_session: selenium2 
      browser_name: firefox 
      goutte: ~ 
      selenium2: ~ 
    paths: 
     features: %behat.paths.base%/src 
     bootstrap: %behat.paths.features%/Context 

Auch suchen für Selenium2Driver und selenium Stichwort in dieser Site: http://www.inanzzz.com/index.php/posts/behat