win10使用WinAppDriver实现UI自动化
win10使用WinAppDriver实现UI自动化
WinAppDriver说明
- WinAppDriver(Windows Application Driver)是一个类似Selenium的UI自动化测试服务
- 系统要求: Windows10或Windows Server 2016
- 支持应用程序: UWP, WPF, WinForms, Win32
开发配置
- 要求系统启用开发人员模式
- 设置 -> 更新和安全 -> 开发者选项
测试环境
系统: win10
Python3.6.3
下载&安装&运行
- 下载安装: https://github.com/Microsoft/WinAppDriver/releases
- 运行WinAppDriver.exe
示例
- 连接WinAppDriver服务
webdriver.Remote(command_executor=\'http://127.0.0.1:4723\', desired_capabilities=desired_caps)
- 元素查找
# 这里的 文本编辑器 指的是句柄的name
self.driver.find_element_by_name("文本编辑器")
- 元素可以通过inspect.exe获取, 系统一般自带, 路径C:\Program Files (x86)\Windows Kits\10\bin\x64
- 也可以通过WinAppDriver UI Recorder获取
- 元素查找方法对照表
- 实践: 操作记事本
参考代码
import unittest
from appium import webdriver
from selenium.webdriver.common.keys import Keys
class NotepadTests(unittest.TestCase):
@classmethod
def setUpClass(self):
desired_caps = {}
desired_caps[\'app\'] = r"C:\Windows\System32\notepad.exe"
self.driver = webdriver.Remote(
command_executor=\'http://127.0.0.1:4723\',
desired_capabilities=desired_caps)
@classmethod
def tearDownClass(self):
self.driver.quit()
def test_edit(self):
self.driver.find_element_by_name("文本编辑器").send_keys("polyv")
self.driver.find_element_by_name("文件(F)").click()
self.driver.find_element_by_xpath(
\'//MenuItem[starts-with(@Name, "保存(S)")]\').click()
self.driver.find_element_by_xpath(
\'//Pane[starts-with(@ClassName, "Address Band Root")]\').find_element_by_xpath(
\'//ProgressBar[starts-with(@ClassName, "msctls_progress32")]\').click()
self.driver.find_element_by_xpath(
\'//Edit[starts-with(@Name, "地址")]\').send_keys(
r"D:\test" Keys.ENTER)
self.driver.find_element_by_accessibility_id(
\'FileNameControlHost\').send_keys("note_test.txt")
self.driver.find_element_by_name("保存(S)").click()
self.driver.find_element_by_name("关闭").click()
if __name__ == "__main__":
suite = unittest.TestLoader().loadTestsFromTestCase(NotepadTests)
unittest.TextTestRunner(verbosity=2).run(suite)