我正在尝试使用selenium webdriver来自动化Web应用程序。所以说弹出下面的对话框,我的目标是自动点击Save File,然后点击Ok。
Windows保存/打开文件DownloadDialouge
答案 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 ......