测试必须在时间、质量和成本之间获取一个平衡点,这是测试策略和测试设计的价值体现。

2.16-1 非input文件上传(SendKeys)

上一篇 / 下一篇  2018-06-12 10:51:29 / 个人分类:Python+Selenium2 WebDriver API

2.16-1 非input文件上传(SendKeys)

51Testing软件测试网7f)eh9BN3J,q

前言51Testing软件测试网e&Wc2H{
不少小伙伴问非input标签如何上传文档,这个本身就是一坑,无奈很多小伙伴非要跳坑里去,那就介绍一个非主流的上传文件方法吧,用第三方库SendKeys.51Testing软件测试网)A.YnDy,m.D$`
 
-h vH b4FBMV0一、SendKeys安装51Testing软件测试网+OPW s,SBQh
1.pip安装SendKeys
X"vAEv u"u}_0>pip install SendKeys

dZA2u^:f6k051Testing软件测试网:L#jh9Wx

51Testing软件测试网!q4m a3K7t*nLf|H

51Testing软件测试网#L#T!v:br5D

2.在安装的时候如果你出现上面保存,先别急着截图贴群求大神,上面已经告诉解决办法了:Get it from http://aka.ms/vcpython2751Testing软件测试网 Tv"r u y+dB%X
3.按上面给的地址下载文件,一路傻瓜式安装就行
\9Bz N#B]&|04.出现如下界面,说明安装成功了51Testing软件测试网M.~:y-xa7_P

51Testing软件测试网U/eL1klO:t bSu

Vn1@{2G$h~f051Testing软件测试网/d1G%NY^cY-n$l

二、参考代码51Testing软件测试网^ Bury wHG
1.以下代码在Chrom浏览器上是运行通过的,要先登录博客园记住密码,然后加载配置免登录51Testing软件测试网D G$[d p
2.chrome加载配置方法,只需改下面一个地方,username改成你电脑的名字(别用中文!!!)51Testing软件测试网^X9U6Ck `[v]X;i

51Testing软件测试网 A3EJ5^K/W$a3H/fgV

'--user-data-dir=C:\Users\username\AppData\Local\Google\Chrome\User Data'51Testing软件测试网?T\f*{r

;oW!pI i }aUi03.后面两次回车,是因为搜狗输入法,第一个回车是确认输入,第二个是确定选中的文件

VT$I}(T,@s051Testing软件测试网*Xp6sB(A*L&w

4.这里点文件上传按钮也是一个坑,用工具定位的这个元素,点击有问题,所以我改用它父元素定位了

*_ {+f3t!A/h-wd0
复制代码
#coding:utf-8fromseleniumimportwebdriverimportSendKeysimporttime#加载Firefox配置#profileDir = r'C:\Users\xxxAppData\Roaming\Mozilla\Firefox\Profiles\1x41j9of.default'#profile = webdriver.FirefoxProfile(profileDir)#driver = webdriver.Firefox(profile)#加载Chrome配置ption =webdriver.ChromeOptions()
option.add_argument('--user-data-dir=C:\Users\xxxAppData\Local\Google\Chrome\User Data')
driver= webdriver.Chrome(chrome_options=option)
driver.implicitly_wait(30)
driver.get("http://www.cnblogs.com/yoyoketang/")
driver.find_element_by_link_text("随笔").click()
time.sleep(3)#点开编辑器图片driver.find_element_by_css_selector("img.mceIcon").click()
time.sleep(3)#定位所有iframe,取第二个iframe. = driver.find_elements_by_tag_name('iframe')[1]#切换到iframe上driver.switch_to_frame(iframe)#文件路径time.sleep(2)
driver.find_element_by_class_name("qq-upload-button").click()#driver.find_element_by_name("file").click()   # 这里点文件上传按钮也是一个坑,我用它父元素定位了,参考上面一行time.sleep(5)#SendKeys方法输入内容SendKeys.SendKeys("D:\\test\\jie1\\blog\\12.png")#发送文件地址time.sleep(1)
SendKeys.SendKeys("{ENTER}")#发送回车键time.sleep(1)
SendKeys.SendKeys("{ENTER}")# 因为我的电脑是搜索输入法,所以多看一次回车#driver.quit()
复制代码
51Testing软件测试网3R"JU$Q9m!m&F

(备注:这里Firefox上运行有个坑,第二次回车失效了,这个暂时没想到好的解决办法)
e7N)?)L#M3}m a0只能说处处都是坑,且用且珍惜!

xno @'~c(\}*X a!Z0

TAG:

 

评分:0

我来说两句

Open Toolbar