2017-07-18 108 views
1

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

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

我已经确认filepath是绝对正确的。我也证实WebDriver元素是绝对正确的。并且,此代码确实在我们的应用程序的完全独立的形式工作。我的猜测是,这个文件上传组件编码的方式不能与这种方法兼容。

我还有哪些其他选项可用于上传文件?注意,控制系统文件浏览器完全是出于给我们的测试是在运行环境的问题

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

+1

它是一个标准的文件上传HTML元素或者是一个自定义文件上传替换您的路径? – Purus

+0

看看这个线程,它有一个适当的解决方案给你:https://stackoverflow.com/questions/3300580/webdriver-file-upload –

回答

0

尝试从

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

to 

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

OR

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