0

私はミンクでBehatを使用しています。

実行中のドライバーに応じて、ステップ定義の 1 つが異なる動作をするようにしたいと考えています。

理想的には、私のコードは次のようになります

public function stepDefinition(){
    if($this->getSession()->getDriver()->name == 'goutte'){
        //code to run if using goutte
    }else{
        //code to run if selenium is running
    }
}
4

1 に答える 1

1

そのため、コードを少し掘り下げることで、これに対する解決策を見つけました。グーグルは役に立たなかったので、うまくいけば、これは他の誰かの助けになるでしょう。

私のコードは次のようになります

    if( $this->getSession()->getDriver() instanceof Behat\Mink\Driver\Selenium2Driver){
       // Selenium Code
    }else{
        //Goutte Code
    }

ドライバー オブジェクトを取得し、それがどのドライバー クラスの拡張であるかを簡単に確認しました。

@javascriptタグがシナリオの前にあるかどうかに関係なく、同じステップ定義を実行できるようになりました。

于 2013-09-06T11:11:59.953 に答える