[英]Calling to a Sikuli script from Python (Selenium)
在網站上運行Selenium測試時,我有一些我無法使用Selenium / Python測試的Flash元素。 我想呼叫一個單獨的終端窗口,運行Sikuli OCR測試,然后再回到Selenium / Python測試。 我無法完全理解這一點。 我把XXX放在我不知道新終端打開和運行Sikuli腳本的論據的地方。
def test_05(self):
driver = self.driver
driver.get(self.base_url + "/")
driver.find_element_by_link_text("Home").click()
driver.find_element_by_id("open_popup").click()
driver.find_element_by_id("screen_name").send_keys("user")
driver.find_element_by_id("password").send_keys("pwd")
driver.find_element_by_id("login_submit").click()
driver.find_element_by_id("button").click()
time.sleep(120)
os.system('XXX')
os.system('./Sikuli/sikuli-script -r test.sikuli')
我相信這里有一些錯誤的物品。 任何幫助將不勝感激。 我已經搜索並閱讀了我已經可以找到的內容,但是無法全部一起工作。
我遇到了類似的問題,所以我為Sikuli寫了一個CPython模塊。 該模塊托管在GitHub上 ,可通過pip install sikuli
。 它可以使用pyjnius訪問包含的Sikuli jar,因此您不必使用Jython甚至安裝Sikuli本身(盡管我建議將其用於錄制目的)。 該模塊目前涵蓋了大多數簡單的Sikuli函數,因此它應該涵蓋了很多用例。
安裝完成后, from sikuli import *
一個簡單from sikuli import *
將幫助您入門,但作為最佳實踐,我建議您僅導入要使用的功能。 這對於這個模塊尤為重要,因為sikuli有一個type
函數,它覆蓋了Python自己的type
函數。
為了從Selenium調用Sikuli代碼,我的第一選擇是TestAutomationEngr建議使用Java,因為Selenium和Sikuli都有本機Java綁定。
既然你想使用Python,你應該嘗試在Jython下運行Selenium。 重要的是要記住Sikuli是Jython ,這可能是你無法導入它的原因。 (另一個原因是你沒有在Jython的模塊路徑中使用它。)我自己沒有嘗試過,但去年在Selenium中修復了一個錯誤 ,表明在Jython下它應該沒問題。
請注意,如果直接從Jython調用Sikuli代碼,則需要添加
from sikuli.Sikuli import *
到頂部。 這是因為Sikuli IDE隱式地將其添加到所有Sikuli代碼中。
最后,您的最后一招是從命令行調用Sikuli。 有一個常見問題解答 。 您可能需要“無IDE”版本,您可以在其中調用Java並傳入sikuli-script JAR文件。
如果你的sikuli腳本是完全獨立的,你只想運行一次然后控制回你的python腳本。 然后,您可以創建一個批處理文件,該文件調用您的sikuli腳本並從您的python腳本調用此批處理文件。 批處理文件運行完畢后,它將退出並將控制權返回給您的python腳本。
樣本批處理文件:
@echo off
call C:\Sikuli\runIDE.cmd -r C:\Automation\Test1.sikuli
exit
從python中調用Sikuli腳本的代碼片段:
import subprocess
def runSikuliScript(path):
filepath = path
p = subprocess.Popen(filepath, shell=True, stdout = subprocess.PIPE)
stdout, stderr = p.communicate()
print "Done Running Sikuli"
p = "C:\\Automation\\Test1\\test1.bat"
runSikuliScript(p)
// You can carry on writing your python code from here on
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.