最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python調(diào)用sikulixide庫(kù)實(shí)現(xiàn)自動(dòng)化腳本方法實(shí)例

 更新時(shí)間:2025年11月15日 08:53:15   作者:#undefined?me  
SikuliX IDE是一個(gè)基于圖像識(shí)別的自動(dòng)化測(cè)試工具,主要用于UI測(cè)試,它本身并不直接支持文本文件讀取操作,因?yàn)樗饕糜谔幚砥聊簧系膱D片和截圖,這篇文章主要介紹了python調(diào)用sikulixide庫(kù)實(shí)現(xiàn)自動(dòng)化腳本的相關(guān)資料,需要的朋友可以參考下

SikuliX的基本概念

SikuliX是一種基于圖像識(shí)別的自動(dòng)化工具,允許用戶(hù)通過(guò)屏幕截圖來(lái)定位和操作圖形用戶(hù)界面(GUI)元素。它結(jié)合了計(jì)算機(jī)視覺(jué)和腳本語(yǔ)言(如Python或Jython),能夠模擬人類(lèi)對(duì)圖形界面的交互行為,如點(diǎn)擊、輸入、拖拽等。

SikuliX的核心功能

圖像識(shí)別與匹配

SikuliX通過(guò)截取屏幕上的目標(biāo)區(qū)域圖像,將其作為模板進(jìn)行匹配。匹配算法支持調(diào)整相似度閾值,以適應(yīng)不同分辨率和界面變化。

跨平臺(tái)支持

支持Windows、macOS和Linux系統(tǒng),能夠在不同操作系統(tǒng)中實(shí)現(xiàn)統(tǒng)一的自動(dòng)化操作。

腳本化操作

支持Jython(Python的Java實(shí)現(xiàn))腳本,允許用戶(hù)編寫(xiě)復(fù)雜的邏輯流程。腳本可以調(diào)用SikuliX提供的API,實(shí)現(xiàn)點(diǎn)擊、輸入、等待等操作。

集成開(kāi)發(fā)環(huán)境(IDE)

提供內(nèi)置的SikuliX IDE,支持腳本編輯、調(diào)試和運(yùn)行。用戶(hù)可以直接在IDE中截取屏幕區(qū)域并生成代碼片段。

多語(yǔ)言支持

支持多種編程語(yǔ)言調(diào)用,包括Java、Python等??梢酝ㄟ^(guò)Java的API將SikuliX集成到其他自動(dòng)化框架中。

典型應(yīng)用場(chǎng)景

  • GUI自動(dòng)化測(cè)試:對(duì)桌面應(yīng)用或Web應(yīng)用進(jìn)行功能測(cè)試,無(wú)需依賴(lài)底層代碼。
  • 重復(fù)性任務(wù)自動(dòng)化:如批量文件處理、數(shù)據(jù)錄入等。
  • 游戲腳本:實(shí)現(xiàn)簡(jiǎn)單的游戲操作自動(dòng)化,如自動(dòng)點(diǎn)擊或按鍵。

示例代碼片段

from sikulix4java import Screen

screen = Screen()
# 點(diǎn)擊匹配到的目標(biāo)圖像
screen.click("image.png")
# 在匹配到的區(qū)域輸入文本
screen.type("image.png", "Hello SikuliX")

使用案例

使用python導(dǎo)入sikulixide庫(kù)實(shí)現(xiàn)桌面圖標(biāo)識(shí)別達(dá)到自動(dòng)化運(yùn)行目的

1. 下載sikulixide庫(kù)文件

從官方 GitHub 倉(cāng)庫(kù)下載

訪(fǎng)問(wèn) SikuliX 的官方 GitHub 發(fā)布頁(yè)面:

https://github.com/RaiMan/SikuliX1/releases

在頁(yè)面中找到版本 2.0.5,展開(kāi) Assets 部分,下載 sikulixide-2.0.5.jar 文件。

2. 下載JAVA運(yùn)行庫(kù)

sikulixide需依賴(lài)于java運(yùn)行庫(kù)才能實(shí)現(xiàn)運(yùn)行

訪(fǎng)問(wèn)Oracle官方網(wǎng)站的Java下載頁(yè)面(https://www.oracle.com/java/technologies/javase-jre8-downloads.html)。選擇適合操作系統(tǒng)的版本(Windows、macOS或Linux),勾選接受許可協(xié)議后點(diǎn)擊下載鏈接。安裝時(shí)需管理員權(quán)限,按提示完成安裝。

3. 正確導(dǎo)入模塊

from jpype import *  
from sikulix4python import *

4. 在python腳本中正確設(shè)置sikulixide庫(kù)以及JAVA運(yùn)行庫(kù)的文件位置

# 獲取當(dāng)前運(yùn)行的臨時(shí)目錄
base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))

# 設(shè)置 JAVA_HOME 環(huán)境變量
os.environ['JAVA_HOME'] = os.path.join(base_path, 'jre-image')

# 構(gòu)建 Java 網(wǎng)關(guān)的完整路徑
java_path = os.path.join(base_path, 'sikulixide-2.0.5.jar')

建立網(wǎng)關(guān),連接兩個(gè)功能庫(kù)

# 異步啟動(dòng) Java 網(wǎng)關(guān),指定端口號(hào)
try:
    subprocess.Popen(['java', '-jar', java_path, '-p', '25333'])
except Exception as e:
    print(f"Failed to start Java gateway: {e}")

設(shè)置報(bào)警信息

網(wǎng)關(guān)通信正常后可正常使用sikulixide庫(kù)功能

5. 設(shè)置窗口信息

classpath = os.path.join(os.getcwd(), "sikulixapi-2.0.5-win.jar")
startJVM(getDefaultJVMPath(), "-ea", f"-Djava.class.path={classpath}")
#java.lang.System.out.#println("------------------------------------------- \n")
Screen = JClass("org.sikuli.script.Screen")
screen = Screen()

同python中的pygui模塊,后續(xù)的桌面圖像操作需基于此屏幕變量進(jìn)行

6. 設(shè)置屏幕操作功能函數(shù)

1. 屏幕圖片單擊操作功能函數(shù)

#雙圖片單擊
def auto_click_image2(image_path1, image_path2, similarity=1.0):
    if screen.exists(image_path1, timeout=3, similarity=similarity):
        screen.click(image_path1)
    elif screen.exists(image_path2, timeout=3, similarity=similarity):
        screen.click(image_path2)
    #else:
        #print(f"{image_path1} 和 {image_path2} 均未找到")

2. 屏幕圖片雙擊功能函數(shù)

#單圖片雙擊
def auto_doubleclick_image(image_path, similarity=1.0):
    if screen.exists(image_path, timeout=3, similarity=similarity):
        screen.doubleClick(image_path)
    #else:
        #print(f"{image_path} 未找到")

3. 文本輸入功能函數(shù)

#文本輸入函數(shù)
def type_on_screen(img, text):
    match = screen.exists(img, 3.0)  # number must be float/double
    if match:
        match.click()  # 模擬鼠標(biāo)單擊
        match.type(text)  # 模擬定位并輸入文本

4. 移動(dòng)鼠標(biāo)位置功能函數(shù)

#移動(dòng)鼠標(biāo)位置
def move_mouse_to_center():
    screen_width, screen_height = pyautogui.size()
    pyautogui.moveTo(screen_width / 2, screen_height / 2)
    # 等待1秒
    time.sleep(1)

5. 適當(dāng)?shù)奶砑覷I界面布局(tkinter)

        directory_var = tk.StringVar(root)
        tk.Label(root, text="選擇文件保存地址:").pack()
        directory_entry = tk.Entry(root, textvariable=directory_var)
        directory_entry.pack()
        # 修改按鈕的命令,使其在點(diǎn)擊時(shí)調(diào)用選擇目錄函數(shù),并更新地址
        directory_button = tk.Button(root, text="瀏覽", command=lambda: directory_var.set(select_directory_wx()))
        directory_button.pack()
        #選擇測(cè)試系統(tǒng)
        tk.Label(root, text="選擇測(cè)試的系統(tǒng)版本:").pack()
        system_var = tk.StringVar(value='TNC640')
        system_menu = tk.OptionMenu(root, system_var, 'TNC640', 'TNC7')
        system_menu.pack()

6. 程序結(jié)束后關(guān)閉java服務(wù)器

shutdownJVM()

注意事項(xiàng)

  • 確保系統(tǒng)已安裝 Java 8 或更高版本以運(yùn)行 .jar 文件。
  • 程序運(yùn)行前確保java服務(wù)器與sikulixide庫(kù)正常通訊
  • 確認(rèn)屏幕信息獲取正常
  • 該功能與pyGUI模塊有重疊,但圖像識(shí)別能力更強(qiáng)大

總結(jié) 

到此這篇關(guān)于python調(diào)用sikulixide庫(kù)實(shí)現(xiàn)自動(dòng)化腳本的文章就介紹到這了,更多相關(guān)python調(diào)用sikulixide庫(kù)自動(dòng)化腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 梅爾倒譜系數(shù)(MFCC)實(shí)現(xiàn)

    梅爾倒譜系數(shù)(MFCC)實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了梅爾倒譜系數(shù)(MFCC)實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Python處理壓縮文件的詳細(xì)指南

    Python處理壓縮文件的詳細(xì)指南

    在日常數(shù)據(jù)處理和文件管理中,壓縮文件是一種常見(jiàn)的文件格式,使用Python可以方便地自動(dòng)化處理壓縮文件,下面就跟隨小編一起深入了解下Python是如何處理這些壓縮文件的吧
    2024-12-12
  • python攻防-破解附近局域網(wǎng)WIFI密碼實(shí)現(xiàn)上網(wǎng)自由

    python攻防-破解附近局域網(wǎng)WIFI密碼實(shí)現(xiàn)上網(wǎng)自由

    本文將記錄學(xué)習(xí)如何通過(guò) Python 腳本實(shí)破解附近局域網(wǎng) WIFI 密碼的暴力破解,隨時(shí)隨地免費(fèi)蹭網(wǎng),再也不被WiFi密碼困擾,實(shí)現(xiàn)蹭網(wǎng)自由
    2021-08-08
  • Django 解決model 反向引用中的related_name問(wèn)題

    Django 解決model 反向引用中的related_name問(wèn)題

    這篇文章主要介紹了Django 解決model 反向引用中的related_name問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • PyCharm 創(chuàng)建指定版本的 Django(超詳圖解教程)

    PyCharm 創(chuàng)建指定版本的 Django(超詳圖解教程)

    這篇文章主要介紹了PyCharm 創(chuàng)建指定版本的 Django,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • Python求導(dǎo)數(shù)的方法

    Python求導(dǎo)數(shù)的方法

    這篇文章主要介紹了Python求導(dǎo)數(shù)的方法,涉及Python數(shù)學(xué)運(yùn)算的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • 詳解python的ORM中Pony用法

    詳解python的ORM中Pony用法

    本篇文章給大家詳細(xì)介紹了python的ORM中Pony用法以及詳細(xì)代碼分享,對(duì)此有需要的朋友測(cè)試參考下。
    2018-02-02
  • Python 中的類(lèi)class實(shí)例詳解

    Python 中的類(lèi)class實(shí)例詳解

    這段文章詳細(xì)介紹了Python面向?qū)ο缶幊痰暮诵母拍?文章還強(qiáng)調(diào)了類(lèi)的命名規(guī)范、實(shí)例方法與屬性的區(qū)別、私有屬性的定義及使用@property簡(jiǎn)化數(shù)據(jù)類(lèi)定義的重要性,感興趣的朋友跟隨小編一起看看吧
    2026-05-05
  • 使用Python生成跑馬燈視頻的完整代碼

    使用Python生成跑馬燈視頻的完整代碼

    這篇文章主要介紹了如何使用Python生成跑馬燈視頻,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-11-11
  • python 6行代碼制作月歷生成器

    python 6行代碼制作月歷生成器

    這篇文章主要介紹了python如何用6行代碼制作月歷生成器,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09

最新評(píng)論

汉中市| 营口市| 齐齐哈尔市| 新野县| 莱阳市| 襄汾县| 青川县| 杭锦旗| 凭祥市| 宜黄县| 清原| 交城县| 灵丘县| 东山县| 浦江县| 德江县| 循化| 青州市| 炉霍县| 尼勒克县| 昭平县| 清徐县| 潢川县| 来凤县| 天长市| 玉林市| 镇坪县| 安庆市| 焦作市| 蕉岭县| 商丘市| 汶川县| 新余市| 普宁市| 河池市| 普安县| 襄城县| 涞水县| 那坡县| 吉安县| 新闻|