目录

  1. 1 环境准备
  2. 2 安装窗口识别工具和元素组件
    1. 1 窗口元素的识别工具
      1. inspect.exe
      2. FlaUInspect
    2. 2 安装 WinAppDriver
    3. 3 appium 环境搭建
    4. 4 代码示例

1 环境准备

1 找到 开发者选项,打开 【开发人员模式】

2 安装窗口识别工具和元素组件

1 窗口元素的识别工具

类似于 uiautomatorviewer 的作用,识别出指定元素的xpath。

以下两种工具选择一种就可以,FlaUInspect 的界面会更清晰一下,容易上手。

inspect.exe

官网下载链接https://download.microsoft.com/download/4/d/2/4d2b7011-606a-467e-99b4-99550bf24ffc/windowssdk/winsdksetup.exe

百度云盘链接https://pan.baidu.com/s/1X2DHaCffAqc5_hahBQSivg?pwd=8888

inspect 的启动位置我找了好久,大致的位置都在这个路径下,可能中间的版本不太一样,一般都是10点多,可以在放各个版本的目录下搜索一下inspect.exe

C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64

FlaUInspect

官网下载地址https://github.com/FlaUI/FlaUInspect

2 安装 WinAppDriver

作用类似于 selenium 的自动化测试服务,在执行自动化测试前需要保证WinAppDriver 是启动状态。

官网下载地址https://github.com/Microsoft/WinAppDriver/releases

百度网盘链接https://pan.baidu.com/s/1MgAT23yIPmgyNY5nSwJ0Dg?pwd=8888

3 appium 环境搭建

安装nodejs、appium环境。

Node.jshttps://nodejs.org/en

1
pip install Appium-Python-Client==1.3.0`

4 代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import os
from appium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
from time import sleep

class Auto():
driver = None

def open_weixin(self, host='localhost', port=4723):
# 打开WinAppDriver服务
# 注意:如果手动开启,则可以注释掉
os.system(r'start "" /d "C:\Program Files (x86)\Windows Application Driver\" "WinAppDriver.exe"')

# 配置信息
# 包含:平台名、系统、应用程序绝对路径
desired_caps = {'platformName': 'Windows', 'deviceName': 'WindowsPC',
'app': r"C:\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.driver.find_element_by_name(element_name)

# 点击元素,进入聊天界面
chat_element.click()

# 找到输入框,并输入
self.driver.find_element_by_name("输入").send_keys(msg)

# 点击右下角的发送,发送消息出去
# self.driver.find_element_by_name("发送(S)").click()
# sendBtn
self.driver.find_element_by_name("sendBtn").click()

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

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

# 2、关闭WinAppDriver应用程序
os.system(' @taskkill /f /im WinAppDriver.exe')


if __name__ == '__main__':
auto = Auto()
auto.open_weixin()
auto.send_msg("文件传输助手", "我是自动发送的哈哈")
auto.tearDownFunc()