Python3与Sikuli的UI自动化测试之路

背景:

项目需要在微信端小程序覆盖UI自动化测试,使用appium成本太高,故考虑可否使用sikuli来做。

调研:

问题:Sikuli使用的是java编写,python无法直接调用其api
解决方法:JPype

JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器端编程)中的不足。

安装方法:pip install JPype

实例

'''

coding:utf-8

from jpype import *
import os
from selenium import webdriver
from utils.base import Base

DIR = os.path.dirname(os.path.abspath('.'))
CHROME_DRIVER_PATH = DIR + '/tools/chromedriver_v65.exe'
IMG_PATH = DIR + '/sikuli/'

"""
启动浏览器,打开被测页面
"""
driver = webdriver.Chrome(executable_path=CHROME_DRIVER_PATH)
driver.maximize_window()
driver.get(Base.get_config_value('config', 'testEnv', 'url_3.0'))

"""
由于Sikuli使用的是java编写,python无法直接调用其api,必须使用JPype来调用
"""
"""
JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器端编程)中的不足。
"""

startJVM(r'C:\Program Files\Java\jre1.8.0_101\bin\server\jvm.dll', '-ea', r'-Djava.class.path=D:\sikuli\sikulixapi.jar') # 启动 JAVA 虚拟机
Screen = JClass('org.sikuli.script.Screen') # 返回一个Java类给Python
screen = Screen() # 实例化这个类
screen.click(IMG_PATH + '跳过.PNG') # 点击事件
screen.click(IMG_PATH + '地址簿.PNG')

driver.quit()
'''

你可能感兴趣的:(Python3与Sikuli的UI自动化测试之路)