2012-04-03 4 views
1

ポップアップが開くまでセレンサーバーを停止する方法はありますか?Selenium waitforpopup

selenium.waitForPageToLoadは、ページが読み込まれるまでサーバーを停止します。しかし、Popupのためにそれを停止する方法はありますか?

selenium.WaitForPopupで試しましたが、ポップアップIDが見つかりません。なぜなら、id要素がpopup_containerであるdiv要素を持つポップアップボックスを作成したからです。

そして、私は次のコードを試してみました:

selenium.WaitForPopUp("id=popup_container", "30000"); 

をしかし、それは動作しません。どんな助け?

+0

この[demo](http://www.pat-burt.com/csspopup.html)に見られるように、ポップアップはdivタグですか? –

+0

ya ..正確に... –

+0

あなたはどんな考えを持っていますか? –

答えて

1

あなたの「ポップアップ」は実際にはポップアップではなく、単なるdivタグです。したがって、その要素(divタグ)が存在するまで待つ必要があります。要素が存在するかどうかを確認する方法があります:

selenium.IsElementPresent(div_of_the_popup) 

要素が存在するか、一定時間が経過するまであなたがループチェックをすることができます。この他のサンプルループはquestion/answerで見ることができます。

Seleniumの後のバージョンでは、wait for要素を実行するためのメソッドを含める必要があります。最終的には、問題の鍵はDIVがポップアップではないのを待つことです。

更新:他の投稿に基づいて、Selenium-Webdriverを使用しているようです。もしそうなら、あなたはexplicit waits

+0

ありがとうございます。 –

0

C#

あなたのポップアップが実際にdiv要素であるため、セレンのWebページからの例を使用することができます。

Wait.Until(ExpectedConditions.PresenceOfAllElementsLocatedBy(By.Id("Popup_Div_Id")));