使用selenium-client gem上传文件

时间:2009-08-10 12:58:50

标签: ruby selenium cucumber webrat

我正在使用带有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)的变通方法有所了解?

2 个答案:

答案 0 :(得分:1)

正常的selenium不能这样做,因为浏览器安全性会阻止javascript写入input = file元素。这是一项安全功能,因此如果您访问被黑客入侵的网站,您的密码文件就不会上传到黑客。

http://jira.openqa.org/browse/SEL-63有详细信息

答案 1 :(得分:0)

我终于弄明白了。

你需要使用带有chrome后端的firefox,你需要指定一个绝对的文件路径。

我最终创建了一个帮助器模块来指定文件路径,以及一个包含测试内容的“fixtures”文件夹。以下是我提出的解决方案的要点:http://gist.github.com/214185

因此,完全可以复制Webrat的attach_file方法!