0

私はセレンRCが初めてです。私はEclipseで作業して、単純なjunitテストケースを実行して、adobe.comからflashplayerを実行およびダウンロードしました。

しかし、Selenium RC は、ダウンロードのポップアップ ウィンドウをクリックしたり、認識したりすることさえできません。Google検索でいくつかの提案を見てきましたが、それでもできません。

ポップアップ ウィンドウのウィンドウ ID または名前を取得しようとしましたが、まだ実行できません。コードの主な機能を以下にコピーしました。

public void testPopup() throws Exception 
    {
    selenium.open("http://get.adobe.com/");
    selenium.open("/flashplayer/");
    selenium.click("id=buttonDownload");

    String ids[]=selenium.getAllWindowIds();
    for(int i=0;i<ids.length;i++)
        System.out.println(ids[i]);
    String[] windownames=selenium.getAllWindowNames();
    for(int i=0;i<windownames.length;i++)
        System.out.println(windownames[i]);

        String feedWinId = selenium.getEval("{var windowId; for(var x in selenium.browserbot.openedWindows ) {windowId=x;} }");
    System.out.println(feedWinId);
        selenium.chooseOkOnNextConfirmation();
    selenium.waitForPageToLoad("30000");                                        
}

誰かがこれで私を助けることができれば素晴らしいことです.

ありがとう

4

2 に答える 2

0

セレンを使用してシステム生成ポップアップを自動化することはできません。
そのためにあなたはシフトオーバーしています Autoit with selenium
これの助けを借りて、あなたはダウンロードポップアップであなたの活動を記録することができます

于 2012-07-03T12:32:35.513 に答える
0

簡単に言えば、できません。

より長いが、それでも残念な答え:

現在の Selenium 実装ではサポートされていないため、できません。セレンの人々はそれについて知っています、それは実際にはnrです. 現在、Selenium で最も必要な機能の 13 個

Selenium RC は、技術的な制限 (純粋な JavaScript であり、純粋な JavaScript はファイルをダウンロードして保存することはできません) のためにこれを使用することはなく、1 年以上前に廃止されました。Selenium WebDriver ... まあ、多分、将来的には。代わりに試すことができるさまざまなこと:

  • 本当にファイルをダウンロードする必要があるかどうかを再考してください。ファイルが存在し、HTTP 要求を作成して応答が200 OK.
  • Selenium 経由で URL を取得した後、pure Java を使用してファイルをダウンロードできませんか? 個人的にはこの方法がベストだと思います。
  • WebDriver を使用している場合は、ファイルをダウンロードするための優れたツールがあります。
  • Firefox を使用している場合は、クリックされたすべてのファイルを特定のフォルダーにダウンロードするように構成されたクリーンなテスト プロファイルをセットアップできます。それを支援するアドオンもあります。Selenium RC が事前に作成されたプロファイルの使用をサポートしているかどうかはわかりませんが、Selenium WebDriver は確実にサポートしています。
  • 特定のブラウザを使用してテストを行っている場合、やみくもにボタンを押すことでファイルを「やみくもに」ダウンロードする方法を理解できます。Robotクラスはそれを助けることができます。ファイルをクリックしてから、盲目的Enterに または任意のキーを押して、ファイルを適切な場所にダウンロードするだけです. 多くの人がこのタスクに使用するAutoIt フレームワークもあります。
于 2012-07-02T23:40:22.377 に答える