2012-08-23 82 views
1

我搜索了很多,但我沒有得到答案...是否有可能包括(附加,或其他)sikuli(使用DLL或其他東西,一些代碼)進入在visual studio 2010中用c#寫的selenium webdriver測試包括sikuli到C#webdriver selenium

回答

1

您是否嘗試過使用Sikuli from command line

我不知道Selenium是否內置了對運行外部工具的支持,但在C#中使用Process對象啓動另一個程序並等待其結束非常容易。

int exitCode; 
var processInfo = new ProcessStartInfo(@"c:\pathto\sikuli.exe", "-parameters for command line"); 
processInfo.CreateNoWindow = true; 
processInfo.UseShellExecute = false; 
Process process = Process.Start(processInfo); 
process.WaitForExit(); 
exitCode = process.ExitCode; 
process.Close(); 
0

所以...這是我第一個想到的方法。

使用藍鴨SDA: http://sda.blueducktesting.com/index.php

無論你來自硒希望(通過AutoIt的),這樣,您就可以執行。

接下來,您將需要Sikuli的Pass/Fail輸出。使用這個包裝: http://code.google.com/p/simplesikuli/wiki/UsageDetails

您可能會也可能不需要查看/使用該簡單包裝器使用的完整Robot Framework。 http://code.google.com/p/robotframework/

祝你好運。

5

我用這樣的:

internal bool FillSingleRow() 
    { 
     return RunTest("Stryktipset_singleRow.sikuli"); 
    } 

public static bool RunTest(string sikuliTest) 
    { 
     var sikuliHome = Environment.GetEnvironmentVariable("SIKULI_HOME"); 
     var execDir = new DirectoryInfo(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)); 

     for (var i = 0; i < 2; i++) 
     { 
      var tempDir = execDir.Parent; 
      if (tempDir != null) 
      { 
       execDir = tempDir; 
      } 
     } 

     Sikuli.StartInfo.UseShellExecute = false; 
     Sikuli.StartInfo.RedirectStandardError = true; 
     Sikuli.StartInfo.RedirectStandardInput = true; 
     Sikuli.StartInfo.RedirectStandardOutput = true; 
     Sikuli.StartInfo.WorkingDirectory = sikuliHome; 
     Sikuli.StartInfo.CreateNoWindow = true; 

     Sikuli.StartInfo.Arguments = "-jar sikuli-script.jar -s " + '\u0022' + execDir.FullName + "\\Sikuli\\" + sikuliTest + '\u0022'; 
     Sikuli.StartInfo.FileName = "java.exe"; 
     Sikuli.Start(); 

     var so = Sikuli.StandardOutput; 
     var se = Sikuli.StandardError; 
     var error = se.ReadToEnd(); 

     if (error != string.Empty) 
     { 
      TestLog.Write(error); 
      return false; 
     } 
     else 
     { 
      return true; 
     } 
    } 
1

剛剛完成的放在一起,通過一個Web服務公開Sikuli的核心功能的Java應用程序。然後,通過編寫一個調用此Java應用程序的「客戶端」庫,我可以在幾乎完全集成的情況下從C#測試中成功調用Sikuli。不是通過命令行運行速度更快

https://sourceforge.net/projects/sikuli4net/

噸(那是我的先前的溶液中,並且通常它上漲了大約一個額外的30秒的測試),以及客戶端庫自動解析從工具的響應,所以你不需要對結果做任何字符串操作!

希望它可以幫助 - 我知道這是不是Sikuli的精確端口,但希望它會得到你所需要的,

0
using System; 
using Microsoft.VisualStudio.TestTools.UnitTesting; 
using NUnit.Framework; 
using Sikuli4Net.sikuli_REST; 
using Sikuli4Net.sikuli_JSON; 
using Sikuli4Net.sikuli_UTIL; 
using System.Threading; 
using Newtonsoft.Json; 

namespace UnitTestProject3 
{ 
    [TestClass] 
    public class UnitTest1 
    { 
     APILauncher launcher = new APILauncher(); 

     Pattern element1 = new Pattern(@"C:\myfolderforscreens\1.png"); 
     [Test] 
     public void TestMethod1() 
     { 
      launcher.Start(); 

      Thread.Sleep(8000); 
      Screen test = new Screen(); 

      test.DoubleClick(element1); 


     } 
    } 
} 

試試這個,應該工作。 p.s.您需要安裝Json - 版本「6.0.5」,設置Java_Home和Sikuli_Home