Selenium RC无法使用下载弹出窗口

时间:2012-07-02 20:31:23

标签: java selenium download selenium-rc

我是硒RC的新手。我一直在eclipse中运行一个简单的junit测试用例来运行并从adobe.com下载flashplayer。

但是selenium RC无法点击甚至识别下载弹出窗口。我一直在谷歌搜索中看到一些建议,但我仍然无法做到。

我一直试图获取弹出窗口的窗口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");                                        
}

如果有人可以帮我解决这个问题,那将会很棒。

由于

2 个答案:

答案 0 :(得分:0)

简短的回答:你不能。

更长但仍然令人失望的答案:

你不能,因为目前没有Selenium实现支持它。 Selenium人know about it,实际上是nr。 13现在Selenium中大多数想要的功能

Selenium RC永远不会拥有它,因为它的技术限制(它是纯JavaScript。纯JavaScript不能下载和保存文件。)并且它已经在一年前被弃用了。 Selenium WebDriver ......好吧,也许,将来。您可以尝试各种各样的事情:

  • 重新思考您是否真的需要下载该文件。是不是只是断言文件存在并且可以making a HTTP request and seeing that the answer was 200 OK下载?
  • 在通过Selenium获取网址后,你不能download the file using pure Java吗?我个人认为这是最好的方式。
  • 如果您使用的是WebDriver,则有a great tool for downloading files
  • 如果您使用的是Firefox,则可以设置一个干净的测试配置文件,该配置文件将进行配置,以便将每个单击的文件下载到某个指定的文件夹中。那里有addons也可以帮助你。我不确定Selenium RC是否支持使用预先创建的配置文件,但Selenium WebDriver肯定会这样做。
  • 如果您使用一个给定的浏览器进行测试,您可以盲目地按下按钮,找出如何“盲目地”下载文件。你有Robotcan help。您只需单击该文件,然后盲目地按 Enter 或任何键将文件下载到正确的位置。还有AutoIt framework,很多人use for this task

答案 1 :(得分:0)

使用selenium无法自动生成系统生成弹出窗口 为此你转移Autoit with selenium
借助此功能,您可以在下载弹出窗口中记录您的活动