2016-07-05 5 views
3

Selenium2Driverを使用してBehat with Minkを使用するときに確実にページが読み込まれるのを待つ方法はありますか?Behat +セレン2が読み込まれるのを待ちます

は、私はこのように待って一部のレガシーテストを継承しました:

Background: 
    Given I am on "http://test.example.com" 
    And I wait for "20000" 
    Given I click on the element with css selector ".button1" 
    And I wait for "30000" 
    Given I click on the element with css selector ".button2" 
    And I wait for "30000" 
    Given I click on the element with css selector ".button1" 
    And I wait for "10000" 

すなわち、ちょうどこの単一のテストは、1分30秒かかります。

私がしたいのは、以前のクリックがページの読み込みにつながるのを待つ一般的な方法です。毎回大きな固定量の時間を待つ必要はありません。

ページの読み込みを待っているのは、すべて特定のページ要素が読み込まれているかどうかを確認することです。

しかし、これらのテストは、常に存在するかどうかを確認できる標準要素がないため、より一般的な方法を使用することを望んでいます。

答えて

4

あなたは次のようにjavasccript状態で待機メソッドを使用することができます。もう一つの良い練習は要素が見つかった場合は、要素を待ち方法を有することがある

/** 
* @When /^wait for the page to be loaded$/ 
*/ 
public function waitForThePageToBeLoaded() 
{ 
    $this->getSession()->wait(10000, "document.readyState === 'complete'"); 
} 

それは例外がスローされます、他の要素オブジェクトを返します。 。クリック方式の場合

あなたはこのような何か持つことができます。

$this->waitForElement("css_selector")->click(); 
関連する問題