selenium3 + python - autoit上傳文件

1、環境準備:

1.能夠autoit官網上下載,安裝 http://www.autoitscript.com/site/

 2.AutoIt裏面幾個菜單功能介紹:css

  • SciTE Script Editor 編輯器,在這裏編寫AutoIt腳本
  • AutoIt Windows Info 元素定位器,用於識Windows控件信息
  • Run Script 執行AutoIt腳本
  • Compile Script to.exe 將AutoIt生成 .exe 可執行文件

   3.autoit 在線文檔,是中文版http://www.autoitx.com/Doc/web

2、腳本實現:編輯器

1.先準備好web頁面的環境,以博客園的上傳圖片爲例:添加新隨筆>點圖片上傳>上傳本地圖片>彈出選擇圖片界面,在這裏不要動了工具

 

 

2.打開 SciTE Script Editor編輯器,開始寫腳本,代碼很是簡單隻有四行blog

 

WinActivate("打開");圖片

ControlSetText("打開", "", "Edit1", "F:\11.png");ip

Sleep(2000);ci

ControlClick("打開", "", "Button1");element

3.編輯完成後執行,tools>go ;或者按f5執行,執行完以後就能看到圖片上傳成功了。文檔

4.autoit幾個經常使用的語法

  • WinActivate("title") 聚焦到指定活動窗口
  • ControlFocus ( "title", "窗口文本", controlID) 設置輸入焦點到指定窗口的某個控件上;
  • WinWait ( "title" , "窗口文本" , 超時時間 ) 暫停腳本的執行直至指定窗口存在(出現)爲止;
  • ControlSetText ( "title", "窗口文本", controlID, "新文本" ) 修改指定控件的文本;
  • Sleep ( 延遲 ) 使腳本暫停指定時間,單位是毫秒;
  • ControlClick ( "title", "窗口文本", 控件ID , 按鈕 , 點擊次數 ) 向指定控件發送鼠標點擊命令;

3、元素定位

1.Find Tool 查看元素屬性,用鼠標按住Find Tool下的圖標,而後拖拽到你想定位的元素上

2.查看controlID,controlID即AutoIt Window Info識別出的Class和Instance的拼接

 4、導出exe文件

在應用程序裏面找到打開Compile Script to.exe工具,將剛纔導出的.au3文件轉化成.exe文件 

 
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import os,time

'''登陸博客'''
driver = webdriver.Chrome()
driver.get("https://passport.cnblogs.com/user/signin")
driver.implicitly_wait(10)

"""帳號和密碼登陸"""
driver.find_element_by_id("LoginName").send_keys("xxxx")
driver.find_element_by_id("Password").send_keys("xxxx")
driver.find_element_by_id("IsRemember").click()
login = WebDriverWait(driver,5).until(EC.element_to_be_clickable((By.ID,"submitBtn")))
login.click()

driver.find_element_by_link_text("個人博客").click()
time.sleep(2)
driver.find_element_by_link_text("發新隨筆").click()
time.sleep(2)
for i in range(10):    # 點開編輯器圖片    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)    # print(iframe)    #點擊上傳文件按鈕    # submit = WebDriverWait(driver,5).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"qq-upload-button")))    # submit.click()    time.sleep(3)    driver.find_element_by_class_name("qq-upload-button").click()    # js = 'document.getElementByClassName("qq-upload-button").click();'    # driver.execute_script(js)    # 執行autoit上傳文件    # os.system(r"C:\Users\Administrator\Desktop\sendfile.exe")    #批量上傳圖片    file_name = "F:\\12\\%s.png"%i    os.system(r"C:\Users\Administrator\Desktop\send.exe %s"%file_name)    time.sleep(3)    # 切回到主頁面    driver.switch_to_default_content()
相關文章
相關標籤/搜索