Selenium WebDriver和浏览器选择文件对话框

Ole*_*tyy 21 c# selenium webdriver

我正在使用selenium webdriver,C#.

是否可以使用Firefox选择文件对话框制作工作webdriver?或者我必须使用像AutoIt这样的东西吗?

pre*_*sto 33

如果您尝试选择要上载的文件,Selenium 2支持HTML文件输入.例如:

HTML

<input type="file" id="uploadhere" />
Run Code Online (Sandbox Code Playgroud)

硒代码

IWebElement element = driver.FindElement(By.Id("uploadhere"));
element.SendKeys("C:\\Some_Folder\\MyFile.txt");
Run Code Online (Sandbox Code Playgroud)

基本上,您"键入"(带SendKeys)文件输入元素的完整文件路径.Selenium为您处理文件选择对话框.

但是,如果你想操纵任意文件选择对话框,那么就像Anders所说的那样,你必须走出Selenium.


And*_*ers 10

不,WebDriver无法与对话框交互 - 这是因为对话框是操作系统的域而不是网页.

我知道那些与autoit一起运气的人以及.Net提供的Automation API.

另一种选择是完全跳过文件对话框并发出POST或GET,但这需要更高级的网站知识以及如何构建POST/GET.

您可以尝试使用Webinator,它类似于Selenium,因为它由WebDriver提供支持.它提供了文件对话功能,我用它取得了很大的成功.