I am trying to use selenium webdriver to automate web application. So say the dialog below pops up, my goal is to automatically click Save File, and then hit Ok.
Windows Save/Open File DownloadDialouge
I am trying to use selenium webdriver to automate web application. So say the dialog below pops up, my goal is to automatically click Save File, and then hit Ok.
Windows Save/Open File DownloadDialouge
WebDriver 不能直接与对话框窗口交互,这是因为对话框窗口是操作系统的域而不是网页。然而,它可以使用名称空间 System.Windows.Forms 的 SendKeys 类方法 SendWait() 在对话框窗口上执行操作
using System.Windows.Forms;
在下面的示例代码中,按下了 PLUpload 按钮,这将打开一个 Windows 对话框以选择要上传的文件。
以下行用于将键值发送到显示的对话窗口。
SendKeys.SendWait(@"C:\Users\Public\Pictures\Sample Pictures\Dock.jpg");
SendKeys.SendWait(@"{Enter}");
C#中SendKeys类的详细参考可以在http://msdn.microsoft.com/en-au/library/system.windows.forms.sendkeys.aspx找到
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}");
}
}
}
//文件保存代码
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);
单独使用 Selenium 是不可能的。
您必须将其与 AutoIT 结合使用:
http://www.autoitscript.com/site/autoit/
(或类似的东西)。
我还要指出,在大多数情况下,您可以简单地“发送”(使用特定语言绑定中的“发送密钥”方法/功能)将文件路径直接发送到上传控件,确保您不单击实际Browse...
按钮。一旦你这样做了,Selenium 的游戏就结束了。
使用此方法进行文件处理:
我们需要 :
jacob.jar下载
它将包含一个 jar 文件和 2 个 .dll 文件
AutoItX4Java.jar下载
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");
}
谢谢...不要单击接受或赞成,直到它适合您。如果它不适合您的意思,请发表评论..不要投反对票...