C端自動化實現:appium+winappdriver+python


一. 前言

  有小伙伴有辦公自動化的需求,特此出一篇C端自動化教程,並附帶demo案例。C端的自動化比B端多一個appium,其他的操作大同小異。

 

二. 環境

  1. appium:exe工具,用於啟動服務,官網下載。
  2. Appium-Python-Client :python驅動appnium的庫,使用pip安裝。
  3. selenium:ui自動化庫,appium的核心層,使用pip安裝。
  4. inspect:exe工具,用於定位元素,官網下載。
  5. winappdriver:是pc端應用做ui自動化的橋梁,官網下載。
  6. 開發者模式:在設置-開發者模式里,選擇開啟。

 

三. 案例

  以操作谷歌瀏覽器的搜索框為例,采用C端的方式做UI自動化,代碼如下:

import subprocess
import time
from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec


def search():
    """
    需求:使用google瀏覽器搜索 “測神-博客園”
    """
    # 啟動winappdriver
    subprocess.Popen(r'start "" /d ""D:\s\Windows Application Driver\" "WinAppDriver.exe"',
                     shell=True,
                     stdout=subprocess.PIPE,
                     stderr=subprocess.STDOUT)
    # 配置c端應用程序
    desired_caps = {"app": r"C:\Program Files\Google\Chrome\Application\chrome.exe"}

    # 啟動應用程序
    driver = webdriver.Remote(
        command_executor="http://127.0.0.1:4723",
        desired_capabilities=desired_caps
    )

    # 獲取應用程序界面的元素(元素定位通過inspect工具實現)
    search_box = WebDriverWait(driver, 20).until(ec.presence_of_element_located((By.NAME, "地址和搜索欄")))
    # 操作元素
    search_box.click()
    search_box.send_keys('博客園-測神')
    search_box.send_keys(Keys.ENTER)

    # 退出瀏覽器
    time.sleep(5)
    driver.quit()


if __name__ == '__main__':
    search()

 

四. 后記

  截止目前(2022/6/21),發現Appium並沒有遠程啟動入口,這意味着未來其官方會缺少對pc端自動化的支持。

  不過這未嘗不是一件好事,復雜的配置已經勸退不少人了,連app自動化用這個做都覺得很爛。

  如果不想用舊版本的,那么用什么做pc端自動化呢?

  ——pywinauto庫。

  后續我會出一篇教程的,這個做pc端自動化要方便多了,而且少了這些復雜的配置,省事兒不少。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM