2012-04-24 46 views
0

SeleniumServerで特定のPopUp/new WindowをJavaで処理しようとしましたが、動作しません。 PopUpWindowをSeleniumで処理する方法

selenium.click("css=a[title=\"Some irrelevant title\"] > div.text"); 
Thread.sleep(5000); 
    for (String s : selenium.getAllWindowNames()) { 
    if (s.contains("_blank")) { 
    selenium.selectWindow("name=" + s); 
    selenium.windowMaximize(); 

    } 
} 
をしかし、それは、新しいウィンドウを認識しません: 私がやりました。 getAllWindowIDsまたは名前またはタイトルを使用すると、プライマリウィンドウの1つだけが返されます。

selenium.waitForPopUp("foobar", "9999")を使用するとタイムアウト後にエラーが発生するため、通常のThread.sleep()を使用しています。

他に何ができますか?

+1

ただ、ブラインドショット:何 'selenium.selectPopup()'についての任意の属性を指定せずに?それは魔法のように一度私を助けました。 –

+0

いいえ..しかし、とにかくありがとうございます。 – Matthias

答えて

0

これは助けることができる:

selenium.RunScript("selenium.browserbot.findElement('css=a[title='Some irrelevant title']').target='my_window'"); 
selenium.RunScript("window.open('', 'my_window')"); 
selenium.click("css=a[title='Some irrelevant title']"); 
selenium.selectWindow("my_window"); 
selenium.waitForElementPresent("element_locator_at_popup") 
+0

あなたの助けていただきありがとうございますが、動作しません.. 新しい空のウィンドウを開き、リンクをクリックしますが、まだIDのない3番目のウィンドウにポップアップが表示されます... クリックされたリンクは次のようになります。 Matthias

+0

@Matthiasの代わりに 'css = a [title =何か関係のないタイトル]> div.text'を挿入' css = a [title =申し訳ありませんが無関係]。私の最初の答えを編集しました –

+0

私はあなたの最後の変更をテストしなかったので、そこを参照するのではなく直接リンクを使用して修正しました。しかし、とにかく助けてくれてありがとう! :) – Matthias

0

最初にそれをマニュアルで行います。ポップアップがポップアップした後にボタンをクリックすると、セレンIDEを使用してポップアップが表示されます。ウィンドウのID rタイトルを取得したら、 "waitforpopup"コマンドで "id"を使用します。

+0

新しいウィンドウにisTextPresentのようないくつかのアクションを記録しましたが、問題はセレニウムが新しいウィンドウを認識せず、古いウィンドウでテキストを見つけようとしていることです。 新しいウィンドウにはID、名前、タイトルはなく、サーバーにも存在しません。 – Matthias

+0

最初に確認してください。ポップアップまたはアラートです。アラートとは、ジャスチェックの天気です。 ? – Manigandan

+0

そのPopUp、新しいブラウザウィンドウで、アラートや確認ボックスではありません。 – Matthias

関連する問題