Selenium Windows保存/打开对话框

时间:2013-03-22 17:26:14

标签: selenium

我正在尝试使用selenium webdriver来自动化Web应用程序。所以说弹出下面的对话框,我的目标是自动点击Save File,然后点击Ok。

Windows保存/打开文件DownloadDialouge

4 个答案:

答案 0 :(得分:2)

WebDriver无法直接与对话框窗口交互,这是因为对话框窗口是操作系统的域而不是网页。但是可以使用对话窗口执行操作 SendKeys类方法SendWait()的名称空间System.Windows.Forms

using System.Windows.Forms;

在下面的示例代码中,按下PLUpload按钮,打开Windows对话框以选择要上载的文件。

以下行用于将键值发送到显示的对话框窗口。

SendKeys.SendWait(@"C:\Users\Public\Pictures\Sample Pictures\Dock.jpg");
SendKeys.SendWait(@"{Enter}");

可以在http://msdn.microsoft.com/en-au/library/system.windows.forms.sendkeys.aspx

中找到C#中SendKeys类的详细参考
using System;
using System.Windows.Forms;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium;
using OpenQA.Selenium.Support;
using OpenQA.Selenium.Interactions;
using NUnit.Framework;
namespace BusinessCreation
{
    class PlUpload
    {
        static void Main(string[] args)
        {
               IWebDriver driver = new FirefoxDriver();
               driver.Navigate().GoToUrl("http://www.plupload.com/example_queuew               idget.php");
               driver.FindElement(By.XPath("//object[@data='/plupload/js/pluploa               d.flash.swf']")).Click();
               SendKeys.SendWait(@"C:\Users\Public\Pictures\Sample Pictures\Dock               .jpg");
               SendKeys.SendWait(@"{Enter}");
         }
    }
}

答案 1 :(得分:0)

不能使用Selenium。

您必须将其与AutoIT结合使用:

http://www.autoitscript.com/site/autoit/

(或类似的东西)。

我还要指出,对于大多数情况,只需“发送”(使用特定语言绑定中的“发送密钥”方法/功能)直接上传控件的文件路径,确保您< em>不要点击实际的Browse...按钮。一旦你这样做,它就是Selenium的游戏结束。

答案 2 :(得分:0)

//文件保存代码

FirefoxProfile profile =new FirefoxProfile();

profile.setPreferences("browser.download.folderlist",0);

profile.setpreferences("browser.helperApps.neverAsk.saveToDisk",mimeType);//applicatio/zip

WebDriver driver = new FireforDriver(profile);

driver.get("http:seleniumhq.org/download");

driver.get("http://selenium.com/files/selenium.zip");

//文件打开代码

profile.setPreferences("browser.helperApps.neverAsk.open",mimeType);

答案 3 :(得分:0)

使用此方法进行文件处理:

我们需要:

jacob.jar Download

它将包含一个jar文件和2个.dll文件

AutoItX4Java.jar Download

public static void uploadFile(String path, String browser){

if(browser.equalsIgnoreCase("chrome")){

    if(x.winWaitActive("Open", "", 10)){
        if(x.winExists("Open")){
            x.sleep(500);
            x.send(path);
            x.controlClick("Open", "", "Button2");

        }
    }

}


if(browser.equalsIgnoreCase("firefox")){

    if(x.winWaitActive("File Upload", "", 10)){
        if(x.winExists("File Upload")){
            x.sleep(500);
            x.send(path);
            x.controlClick("File Upload", "", "Button2");

        }
    }
}

if(browser.equalsIgnoreCase("InternetExplorer")){

    if(x.winWaitActive("Choose File to Upload", "", 10)){
        if(x.winExists("Choose File to Upload")){
            x.sleep(500);
            x.send(path);
            x.controlClick("Choose File to Upload", "", "Button2");

        }
    }
}



}


public void test(){
    //Click on the Select button of the file upload
    uploadFile("Path", "chrome");


}

谢谢...不要点击接受或Upvote直到它适合你。如果它不适合你,请评论..不要Downvote ......