我正在使用带有Webrat和Cucumber的selenium-client gem来测试rails项目。我的Cucumber设置与此处描述的完全相同:http://wiki.github.com/aslakhellesoy/cucumber/setting-up-selenium
我的问题是Selenium无法执行文件上传。理想情况下,我希望能够复制webrat的'attach_file'方法。我尝试使用selenium-client的'type'方法来躲避问题,以输入所需文件的路径,但这似乎失败了。
有没有人对使用selenium-client(即不是常规的Selenium gem)的变通方法有所了解?
答案 0 :(得分:1)
正常的selenium不能这样做,因为浏览器安全性会阻止javascript写入input = file元素。这是一项安全功能,因此如果您访问被黑客入侵的网站,您的密码文件就不会上传到黑客。
答案 1 :(得分:0)
我终于弄明白了。
你需要使用带有chrome后端的firefox,你需要指定一个绝对的文件路径。
我最终创建了一个帮助器模块来指定文件路径,以及一个包含测试内容的“fixtures”文件夹。以下是我提出的解决方案的要点:http://gist.github.com/214185
因此,完全可以复制Webrat的attach_file方法!