一谈及自动化技术技术性,很有可能大家想到的是 App 端 Appium、Airtest、AutoJS,亦或是 Selenium、Puppeteer、Cypress 等 Web 端自动化技术构架

这篇文章内容內容,我将和大家聊一聊 PC 端自动化技术专用工具 – WinAppDriver

1. 前言

朋友们好,我想安果!

一谈及自动化技术,很有可能大家想到的是 App 端 Appium、Airtest、AutoJS,亦或是 Selenium、Puppeteer、Cypress 等 Web 端自动化技术构架

本文內容,我将和大家聊一聊 PC 端自动化技术专用工具 – WinAppDriver

​2. 准备充分

WinAppDriver,全称作 Windows Application Driver,它是 Windows 上一个相仿 Selenium 的 UI 自动化技术促进服务项目新项目构架

它可用 Appium,可以运用 Appium-Python-Client 借助库开展对 Windows 桌面上程序流程的自动化技术操作过程

最新项目具体地址:https://Github.com/Microsoft/WinAppDriver

务必注意的是,要运用 WinAppDriver 服务项目构架开展 Windows 的自动化技术,务必做到 Windows10 或 Windows server 2016 以上系统软件软件

除此之外,它适合的运用软件包含:

  • UWP  –  Universal Windows PlatfORM

  • Winforms  –  Windows Forms

  • WPF  –  Windows Presentation Foundation

  • Win32  –  Classic Windows

在进行之前,大伙儿务必做好以下提前准备工作中

2-1  开启「 开发人员方式 」

关键字检索「 开发者设置 」,选择开启「 开发者模式 」

谈谈PC端自动化的最佳方案——WinAppDriver插图

2-2  安裝提示框构件原素辨别专用工具

普遍的 2 种提示框原素辨别专用工具为:inspect.exe、FlaUInspect

在这其中

作为官方网网的构件原素辨别专用工具,inspect.exe 一体化于 Windows SDK

倘若本地不容易有该文档,可以依据下面联接进行安裝

https://download.microsoft.com/download/4/d/2/4d2b7011-606a-467e-99b4-99550bf24ffc/windowssdk/winsdksetup.exe

比照 inspect.exe,FlaUInspect 网页页面更简洁,功效更好用( 极力推荐 )

最新项目具体地址:https://GitHub.com/FlaUI/FlaUInspect

2-3  安裝 WinAppDriver

依据下面链接下载 WinAppDriver 运用软件,并在本地运行起来

https://github.com/Microsoft/WinAppDriver/releases

2-4  搭建 Appium 地理环境

这一部分内容牵涉到 NodeJS 安裝及 Appium-Server 地理环境的搭建

可以参考:https://www.cnblogs.com/amoyshmily/p/10500687.html

2-5  安裝借助

最后安裝 Python 借助库 Appium-Python-Client

# 安裝借助 Appium-Python-Client
pip3 install Appium-Python-Client

3. 实战演练演习一下

大伙儿以操作过程 PC 端手机上手机微信为事例,聊一聊自动化技术的广泛步骤

最开始,我们在该机器设备打开 WinAppDriver 服务项目,让它在后台管理程序流程

接着,大伙儿运用 Python 编写自动化技术脚本制作

依据 ip 具体地址、端口号及 PC 版微信的绝对路径,运用 Appium 进到手机微信

Import time, os
from appium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
from time import sleep

class Auto():

    def open_weixin(self, host='localhost', port=4723):
        # 打开WinAppDriver服务项目
        # 注意:倘若手拉式开启,则可以注释掉
        # os.System(r'start "" /d "C:\Program Files\Windows Application Driver\"  "WinAppDriver.exe"')

        # 配置信息
        # 包含:服务项目服务平台名、系统软件软件、运用软件绝对路径
        desired_caps = {'platformName': 'Windows', 'deviceName': 'WindowsPC',
                        'app': r"D:\Program Files (x86)\Tencent\WeChat\WeChat.exe"}

        try:
            # 连接WinAppDriver服务项目,打开总体目标软件
            self.driver = webdriver.Remote('http://{}:{}'.format(host, port), desired_caps)
        except Exception as e:
            raise AssertionError(e)

随后,依据「 构件原素辨别专用工具 」获得网页页面原素的特点值,推行广泛的点一下、移动、翻转等操作过程

比如:点一下「 文本文档传送小助手 」,消息推送一条信息

# 给文本文档传输助手消息推送一条信息
def send_msg(self, element_name, msg):
    """
​    :param element_name:原素name值
    :param msg:
    :return:
    """
    # 依据name特点,找寻目标原素
    chat_element = self.weixin_driver.find_element_by_name(target_name)

    # 点一下原素,进到闲谈网页页面
    chat_element.click()

    # 找寻输入框,并输入
    self.weixin_driver.find_element_by_name("输入").send_keys(msg)

    # 点一下右下角的消息推送,消息推送信息内容出去
    self.weixin_driver.find_element_by_name("消息推送(S)").click()

务必注意的是,倘若牵涉到网页页面的翻转,可以运用「 ActionChains 」移动电脑上电脑鼠标,接着运用 win32api 和 win32con 模拟仿真显示器翻转就可以

import win32api
​import win32con
from appium import webdriver
from selenium.webdriver import ActionChains

# 模拟仿真显示器翻转
# 1、移动到某一原素地域
ActionChains(self.weixin_driver).move_to_element(
     self.weixin_driver.find_element_by_name("element_name")).perform()

# 2、翻转网页页面
# 比如,往上旋转,模拟仿真翻转
win32api.mouse_event(win32con.MOUSEEVENTF_WHEEL, 0, 0, -500)

开展自动化技术操作过程后,就可以积极主动释放出资源、关闭 WinAppDriver 服务项目

# 释放出资源及关闭服务项目
def tearDownFunc(self):
​    print("准备充分退出")
    sleep(2)

    # 1、释放出资源
    self.weixin_driver.quit()

    # 2、关闭WinAppDriver运用软件
    os.system(' @taskkill /f /im WinAppDriver.exe')

4. 最后

在实际运用全全过程中,很有可能会遇到复杂的桌面应用操作程序,此刻我们可以依据打印驱动总体目标的「 page_source」原素控制树值,因此来帮助大伙儿进行快速精确精准定位原素,进而完善自动化技术脚本制作

如果你觉得文章还不错,请大家 关心关注点赞共享资源、留言 下,因为这将是我持续输出很多高质量文章的最强推动力!

共享资源 Python 自动化技术及互联网网络爬虫、数据信息数据分析实战演练演习干货知识专业知识,欢迎关注。