python sendkeys用法_Python Selenium 文件上传之SendKeys
昨天寫了Web 文件下載的ui自動化,下載之后,今天就要寫web 文件上傳的功能了。
當然從折騰了倆小時才上傳成功。下面寫一下自己操作的步驟
首先網上說的有很多方法
如 input 標簽的最好做了,直接定位到元素,然后再sendKeys("value")即可
奈何研發的同學做成了 readonly ?屬性的input ,好了學了一點,這種屬性的input就沒辦法 使用 sendkeys了。
只能換其他方法了,
#下面的方式沒有成功
#ActionChains(self.driver).send_keys(releaseFile).perform()
#Ctrl + a
#ActionChains(self.driver).key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform()
#self.driver.implicitly_wait(5)
#ActionChains(self.driver).key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform()
#self.driver.implicitly_wait(5)
#ActionChains(self.driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
#time.sleep(2)
#ActionChains(self.driver).key_down(Keys.ENTER).perform()
#self.driver.find_element_by_xpath(".//*[@id='file_name']").send_keys(releaseFile)
發現鼠標實際操作的還是頁面,而不是彈出的文件選擇框,所以這種方式還是不行。
最后參考
Python selenium文件上傳方法匯總
http://www.jb51.net/article/92678.htm
使用了?SendKeys,因為其他方法有的需要安裝其他程序
首先要安裝SendKeys庫,可以用pip安裝
pip install SendKeys
安裝的過程遇到如下問題
此時需要到 http://aka.ms/vcpython27 ?下載
https://www.microsoft.com/en-us/download/details.aspx?id=44266
然后執行安裝 sendkeys即可成功。
代碼如下
#-*-coding:utf-8-*-#Time:2017/7/1-15:47#Author:YangYangJun
#-*-coding:utf-8-*-import SendKeys
#點擊上傳 下載附件
time.sleep(2)
self.driver.find_element_by_xpath(".//*[@id='down_bar_code_template']").click()
self.driver.implicitly_wait(5)#releaseFile_Path = os.path.join(os.getcwd(),'test_data')
releaseFile = r'C:\PySpace\CMS\UiTest\test_data' + '\UI_Release01.xlsx'time.sleep(2)
self.driver.implicitly_wait(5)
self.driver.find_element_by_css_selector(".webuploader-pick").click()
time.sleep(2)#將路徑輸入
SendKeys.SendKeys(releaseFile)
time.sleep(2)#確定路徑輸入
SendKeys.SendKeys("{ENTER}")
time.sleep(2)#確定打開按鈕
SendKeys.SendKeys("{ENTER}")
time.sleep(2)
self.driver.implicitly_wait(5)#點擊上傳
self.driver.find_element_by_xpath(".//*[@id='file_upload_btn']").click()
time.sleep(6)#提示信息, 上傳成功
successTest = u"上傳商品成功!"get_reInfo= self.driver.find_element_by_xpath(".//*[@id='step_05']/ul/li[1]").textif successTest ==get_reInfo:print u"上傳成功!"
#點擊查看商品
self.driver.find_element_by_xpath(".//*[@id='view_goods']").click()
drugList= ['阿奇霉素片']#調用驗證及刪除函數
self.get_Verify(drugList)else:print u"上傳失敗!"
else:print u"進入賣家中心失敗"
效果如下圖
第一個 模擬回車是為了確認輸入的文件路徑,第二個回車是為了確認點擊打開按鈕。
至此文件的上傳功能就已經完成了。
網上說這種方式有些不穩定,有時間的話可以學習一下其他方法。
總結
以上是生活随笔為你收集整理的python sendkeys用法_Python Selenium 文件上传之SendKeys的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: visibility属性
- 下一篇: 关于企业微信应用开发注意点