2016-11-04 44 views
0

ポップアップが表示されたらそれを確認したい。Behatのポップアップの確認方法を教えてください。

And I wait 10 seconds 
Then I confirm the popup 

そしてFeatureContextファイル: はここで機能ファイルです

<?php 

    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; 

    class FeatureContext extends MinkContext { 
    /** 
    * @when /^(?:|I)confirm the popup$/ 
    */ 
     public function confirmPopup() { 
      $this->getSession()->getDriver()->getWebDriverSession()->accept_alert(); 
     } 
    } 

しかし、それは動作しません。 Error Image

答えて

1

Behat 3を使用していると仮定すると、Pageオブジェクトを拡張する任意のコンテキストでこの手順を追加できます。

public function iConfirmThePopup() 
{ 
    $this->getDriver()->getWebDriverSession()->accept_alert(); 
} 

ポップアップあなたが受け入れるalertメソッドを呼び出す前に、方法でsleep(1);を追加することができ登場の遅れを持っている場合。

を使用でき

This code would work for alert type, if the pop-p is not an alert then you need to use a regular click on the ok/confirm button.

+0

に申し訳@laudaそれらを処理する方法を含んでい後の読者のために、あなたは睡眠(1)を意味しましたか? –

+0

はい、私は睡眠を意味しました – lauda

-2

/** 
* @when /^(?:|I)confirm the popup$/ 
*/ 
public function confirmPopup() 
{ 
    $this->getSession()->getDriver()->getWebDriverSession()->accept_alert(); 
} 

私は非常に便利な、このファイルを見つけました:

https://gist.github.com/blazarecki/2888851

このファイルをすべてのポップアップ

+2

解決策へのリンクは歓迎ですが、あなたの答えがそれなしで役に立つことを確認してください:[リンクの前後にコンテキストを追加](// meta.stackexchange.com/a/8259)仲間のユーザーは、それが何であるか、なぜそれがあるのか​​をいくつか考えて、ターゲットページが利用できない場合にリンクしているページの最も関連性の高い部分を引用します。 [リンク以上の回答は削除される可能性があります。](// stackoverflow.com/help/deleted-answers) –

関連する問題