我正在使用Selenium ChromeDriver为具有异步文件上传体验的页面创建UI测试。文件上传是使用jQuery文件上传插件(https://github.com/blueimp/jQuery-File-Upload)实现的,它增强了输入类型=“文件”,并具有异步上传,多文件上传,拖放支持等附加功能。
如您所知,在Selenium测试中处理标准输入类型=“文件”的推荐方法类似于
driver.FindElement(By.Id("fileinput")).SendKeys(@"c:\test.txt");
但是,它不适用于此插件。服务器端(在我的情况下是MVC控制器的POST操作)没有从客户端获得任何调用,当我打开Chrome DevTools控制台时,我可以看到实际错误无法加载资源:net :: ERR_FILE_NOT_FOUND < / strong>(基本上它抱怨无法访问的服务器URI)。
同时手动操作完全正常(当我导航到页面时,单击上载,在打开文件对话框中选择文件并按打开)。所以看来问题可能出现在Selenium和上传插件本身之间。
还有其他人使用jQuery文件上传插件+ Selenium ChromeDriver遇到类似问题吗?我正在运行ChromeDriver版本2.9和jQuery文件上载版本5.40.0。