使用Selenium Webdriver将文件上载到输入标记

时间:2017-07-18 19:19:38

标签: c# selenium automation webdriver ui-automation

我们的应用程序有一个页面,您可以在其中上传文件。我编写的代码将使用SendKeys()将文件路径发送到文件上载组件的input标记。但是,它不在此页面上工作。

string filepath = Path.GetFullPath(Directory.GetCurrentDirectory() + @"\..\..\..\Test Files\" + filename);
uploadInput.Click();
uploadInput.SendKeys(filepath);

我确认文件路径绝对正确。我也确认WebDriver元素也是正确的。并且,此代码 可以在我们的应用程序的完全独立的形式上工作。我的猜测是这个文件上传组件的编码方式必须与此方法不兼容。

我还有哪些其他选项可用于上传文件?请注意,考虑到我们的测试运行环境,控制系统文件资源管理器是完全不可能的。

编辑:我确认输入标签确实正在接收我指定的文件。但是,表单的自定义验证似乎认为没有上传任何内容。这可能是我需要与开发人员解决的问题。

1 个答案:

答案 0 :(得分:0)

尝试从

替换您的路径
@"\..\..\..\Test Files\" + filename

to

"\\..\\..\\..\\Test Files\\" + filename

OR

var path= new System.Uri(""\..\..\..\Test Files\" + filename");
var bakedPath = uri.AbsoluteUri;