Sikuli in C# Programm einbinden

ahamm

Mitglied
Hallo @all,

ich habe da mal wieder ein Problem :-:)
und zwar geht es um Sikuli. Ich will mit Sikuli automatisiert Webseiten testen.
Zuerst habe ich den SikuliIntegrator genutzt und zwar so:

using SikuliSharp;
using SikuliModule;

namespace MySpace
{
public class TestExecution
{
public void StartExecution ()
{
string WinFlower = @"C:\Pfad\zum Pic\1451234672678.png";
try
{
var point = SikuliAction.FindAll(WinFlower);
SikuliAction.Click(WinFlower);
catch (Exception)
{

throw;
}
}
Die zwei anzulegenden Dateien SikuliOutputLog.txt und SikuliExceptionLog.txt habe ich auch angelegt.
Bekomme aber ständig eine Failure Exception.

Dann wollte ich es mit SikuliSharp probieren. Hier muss ich auf eine Sikuli-script.jar zugreifen. Diese kann mann nur mit einer alten Sikuli-install bekommen. Diese kann ich aber nicht installieren da beim installieren ich immer den agehängten Screenshot bekomme obwohl ich in allen "Programme" Ordner eine Java installation habe, auch im Sikuli unter C:. Ich habe auch java(x64) und java(x86) bereits installiert in der Version 8.66.
Die Sikuli Doku ist sehr sperrlich.

Danke im Voraus.
 

Anhänge

  • fehler_console.PNG
    fehler_console.PNG
    25,3 KB · Aufrufe: 18

sheel

I love Asm
Hi

hab von Sikuli noch nie gehört, aber:

a) Die Exception tritt in welcher Zeile auf, usw.usw.?

b) Der Scriptfehler ist wahrscheinlich durch (sehr) schlechte Programmierung entstanden, und zwar durch die Unfähigkeit, mit Anführungszeichen umzugehen. Wenn du den Inhalt der Datei herzeigst könnte man das richten.

PS: sperrlich => spärlich :)
 

ahamm

Mitglied
Der Fehler tritt genau in der Zeile "var point = SikuliAction.FindAll(WinFlower);"(In der ersten Zeile)
In der Datei steht :
-jar "C:\Users\Sunrise\documents\visual studio 2013\Projects\Mein Projekt\Mein.Projekt\bin\Debug\JSikuliModule.jar" "C:\Pfad\zum Pic\1451234672678.png" "FIND_ALL" 0,95 10000
mehr steht da leider nicht.
Die Exception ist: An unhandled exception of type 'System.Exception' occurred in SikuliModule.dll Additional information: ###FAILURE
Danke!
 

ahamm

Mitglied
Also ich habe mir jetzt selbst eine Lösung erarbeitet. Und zwar ist es generell so dass Sikuli über die Kommandozeile aufgerufen werden kann, und dann ein vorbereitetes Skript ausführt. In diversen Foren wird das gezeigt. sogar die neueste Version kann das.
Als zweites kann man in den Sikuli Skripts normales Python nutzen.
Ich mache es jetzt erst einmal so dass ich meine Skripte vorbereite, diese dann kurz vor Ausführung anhand der definierten Variablen anpasse und dann ausführe. Die Skripte sind auch so angepasst dass diese nach jedem erfolgreichen Schritt einen Wert in die Zwischenablage legen(auch bei Fehler).
Die Zwischenablage tracke ich dann während der Ausführung und kann bei Fehler dann gegensteuern.
In der nächsten Version (Wohl ehr in 3 Jahren bei der Zeit die ich gerade zur Verfügung habe :-( ) werde ich mir dann eine Lib schreiben die dann auch aus C# Skripte on the fly herstellt und damit dann die Sikuli Kommandozeile füttert.
Bis dahin erst einmal danke.
Nen schönen Tag noch in die Community.
 

Neue Beiträge