環(huán)境準(zhǔn)備python3.6 PyCharm 2017.1.3 Windows環(huán)境 框架搭建selenium3.6 安裝方法: pip install selenium 實(shí)現(xiàn)步驟:一、步驟分析 1、選擇“賬號(hào)密碼登錄” 2、用戶(hù)名、密碼輸入,登錄 3、文件上傳 注:本文主要介紹利用selenium包下的webdriver加載Firefox瀏覽器。 二、元素捕捉 利用火狐瀏覽器firebug插件復(fù)制控件的XPATH路徑, 注:Python3.6對(duì)應(yīng)Firefox版本40.x,暫不支持最新版本50.x。
1、點(diǎn)擊“賬號(hào)密碼登錄”,獲取其源文件
效果圖如下:
點(diǎn)擊右鍵,復(fù)制 Xpath 路徑:/html/body/div[1]/div[3]/div[6]/div/div[6]/div[2]/a 登錄按鈕和文件上傳同上,獲取其相應(yīng)的Xpath路徑
代碼: 1 #選擇賬號(hào)密碼登錄
2 driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[6]/div[2]/a').click()
3 # 登錄
4 driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[5]/input').send_keys('username')
5 driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[6]/input').send_keys('password')
6 driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[9]/input').click()
2、登錄成功后,點(diǎn)擊文件上傳,彈出文件對(duì)話(huà)框 “上傳”的Xpath路徑為://*[@id='h5Input0'] 代碼: 1 #上傳
2 driver.find_element_by_xpath('//*[@id='h5Input0']').click()
點(diǎn)擊上傳按鈕,彈出文件對(duì)話(huà)框
三、AutoIT編寫(xiě)腳本實(shí)現(xiàn)上傳文件webdriver無(wú)法對(duì)文件直接進(jìn)行操作,所以需要借助AutoIT來(lái)實(shí)現(xiàn)文件上傳 AutoIT下載地址:https://www.autoitscript.com/site 安裝AutoIt之后,打開(kāi)AutoIt Window Info(x64) 4、獲取文件上傳窗口的控件信息: 打開(kāi)autoit工具之后,用鼠標(biāo)將Finder Tool的圖標(biāo)拖到要識(shí)別的控件上
5、編寫(xiě)AutoIt腳本,實(shí)現(xiàn)文件上傳
3. 將文件保存upfile.au3 4. 使用compile script to exe將上述AutoIt腳本編譯為exe文件供python腳本調(diào)用 6、最后,使用Python腳本調(diào)用AutoIT腳本 1 #點(diǎn)擊上傳,打開(kāi)上傳文件窗口
2 driver.find_element_by_xpath('/html/body/div[1]/div[2]/div[1]/div[2]/div[2]/div[2]/a[1]/form/input').click()
3
4 #使用autoit腳本自動(dòng)上傳文件
5 #需要導(dǎo)入python的os庫(kù)文件: import os
6 os.system('D:/upfile.exe')
完整代碼如下: 1 import os
2 from selenium import webdriver
3 import time
4 class Connect():
5 def __init__(self,UserName,PassWord,URL):
6 self.UserName = UserName
7 self.PassWord = PassWord
8 self.URL = URL
9 def connect(self):
10 self.driver = webdriver.Firefox()
11 self.driver.get(self.URL)
12 self.driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[6]/div[2]/a').click()
13 self.driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[5]/input').send_keys(self.UserName)
14 self.driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[6]/input').send_keys(self.PassWord)
15 self.driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[6]/div/div[3]/form/p[9]/input').click()
16 #設(shè)置思考時(shí)間
17 time.sleep(30)
18 sreach_window = self.driver.current_window_handle # 此行代碼用來(lái)定位當(dāng)前頁(yè)面
19 self.driver.find_element_by_xpath('//*[@id='h5Input0']').click()
20 os.system(r'C:\Users\zg\Desktop\upfile.exe')
21 Connect(UserName,PassWord,URL).upload()
View Code
本文參考文章:http://blog.csdn.net/justheretobe/article/details/50939021 |
|
來(lái)自: lihuimail > 《待分類(lèi)》