Chinaunix首页 | 论坛 | 博客
  • 博客访问: 57790
  • 博文数量: 12
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 130
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-24 10:58
文章分类

全部博文(12)

文章存档

2014年(12)

我的朋友

分类: Web开发

2014-03-26 09:47:19

详细描述

之前用selenium ide 录制脚本时有上传文件方面的操作,将它转化成rc代码后,那条语句是这样的:

sel.type("id=fileFieldName-file", course_file) 其中course_file是一个路径名。也就是说上传文件只需要定位到正确的input然后赋值就ok.fiefox上回放也ok。但是将脚本放在ie浏览器下回放时,就出问题了。执行上传文件的这条语句后,根本没有反应!根本上传不了文件!明明在火狐在是好的啊~

问题解决:

在网上搜索了很久,发现这是selenium rc的一个bug。出于安全方面的考虑,js不允许修改这类表单,所以最后的type是没法实现的,于是在ie上不能完成上传文件的操作。上传文件只能借助第三方工具,如antoit

我觉得用第三方工具实在是太麻烦了,于是进一步查找资料了解到用selenium 2也就是selnium webdriver就可以直接通过赋值实现。所以,我果断抛弃了selenium rc 投入了selenium webdriver的怀抱。

于是用webdriver就用以下这个语句就能实现上传文件。

driver.find_element_by_id("fileFieldName-file").send_keys(course_file)

亲测,在ie和火狐上都ok.

 

在上传文件中,如果你遇到了报WebDriverException的错也许这篇文章能给你帮助:http://blog.sina.com.cn/s/blog_7407815a010170zx.html

如果遇到报badStatuline的错,这篇文章也许有用

http://blog.sina.com.cn/s/blog_7407815a0101710v.html

阅读(2533) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~