2017-01-12 8 views
-1

ブラウザインスタンスの使用中にポップアップを確認するポーリング方法を作成できますか?ブラウザインスタンスの稼働中にポップアップを確認するポーリング方法を作成できますか?

たとえば、ユーザーの移動中にいつでもランダムにポップアップが表示される場合は、表示されるときに一意のIDを使用してポップアップを閉じることができますか?

あなたの助け

@BeforeMethod 
public void closeGiveawayPopup() throws Exception { 
    try { 
     List<WebElement> elements = getDriver().findElements(By.cssSelector(".close")); 
     for (WebElement element : elements) { 
      if (element.isDisplayed()) { 
       element.click(); 
      } 
     } 
    } catch (Exception e) { 
     throw (e); 
    } 
} 

enter image description here

+0

'user journey'?それはセレンにどのように関係していますか? – Andersson

+0

@Andersson iamはWebdriverフレームワークを作成しますが、popups ++はテストのどの段階でもランダムに表示されます。たとえば、アカウントにサインインするなど、ポップアップを閉じるメソッドがありますが、各テストの実行中に継続的にチェックする方法が必要です。 – Gbru

+0

ポップアップ?ポップアップを無効にするのに適していますか?どのようなブラウザ( 'webdriver')を使用していますか? – Andersson

答えて

1

あなたはこの使用を達成するために、おそらく、あなたのJUnitフレームワークを使用することができますいずれか@Before (またはそれに対応してTestNG @BeforeMethodおよび/または@AfterMethodで)各ステップ(JBehave)またはテスト実行は、前および/または後にアラートを出し、それに対応して閉じます。この方法では、少なくとも、すべてのテストではなく、すべてのモジュールで1つのメソッドしか必要ありません。私はJUnitやTestNGの正確な構文を確認していませんが、JUnitを使用していますが、代わりにJBehaveで提供されているBDDを使用するため、注釈は使用しません。ただし、@Beforeと@Afterの種類は似ています。

+0

私が思っていたものを正確に何か考えてくれてありがとう、その問題は私のBrowserFactoryの中に入っているBeforeMethodの中に上記の新しいメソッドを追加したときです。すべて;必要なURLを指していない – Gbru

+0

どのテストフレームワークを使用していますか?私はbrowserfactoryの中に適切な場所とは思わない。私の場合(JBehave)、一般的なユーティリティーモジュールやステップファイル内でポップアップをチェックして処理する実際のコードを配置します。確かにあなたのブラウザファクトリと同じモジュール内にあるかもしれませんが、それはステップモジュールの@Beforeセクションで呼び出される別個のメソッドである必要があります。 –

+0

もう一度お手伝いいただき、ありがとうございました。これまでのフレームワークの最新バージョン(上の画像)をご覧ください。どんなアーキテクチャ上の変更も大いにありがたいです – Gbru

0

ためのおかげで以下のようにFirefoxProfileを使用してみてください:

FirefoxProfile customProfile = new FirefoxProfile(); 
customProfile.setPreference("dom.disable_beforeunload", true); 
FirefoxDriver driver = new FirefoxDriver(customProfile); 
+0

これを試してみる – Gbru

関連する問題