Selenium与Sikuli4Net无法比较从Chrome驱动程序启动的全屏幕图像

时间:2018-04-24 13:52:53

标签: c# selenium-webdriver sikuli

我想比较我使用Snippet工具捕获的图像,该工具将用于与从Selenium chrome驱动程序启动的当前窗口或屏幕进行比较。我的代码在

之下
 [TestClass]
public class UnitTest1
{
    private IWebDriver webdriver = null;
    private APILauncher launcher = new APILauncher(true);
    [TestMethod]
    public void TestMethod1()
    {
        launcher.Start();
        GetWebDriver("http://www.google.com");
        Screen screen = new Screen();
        //Pattern googleSearchScreenPattern = new Pattern(@"C:\Users\amaddox\Documents\Visual Studio 2017\Projects\SikuliDemo\Images\GoogleSearch.PNG");
        //Pattern googleSearchScreenPattern = new Pattern(@"C:\Users\amaddox\Documents\Visual Studio 2017\Projects\SikuliDemo\Images\Espn.PNG");
        //Pattern googleSearchScreenPattern = new Pattern(@"C:\Users\amaddox\Documents\Visual Studio 2017\Projects\SikuliDemo\Images\Text.PNG");
        Pattern googleSearchScreenPattern = new Pattern(@"C:\Users\amaddox\Documents\Visual Studio 2017\Projects\SikuliDemo\Images\GoogleFailureSearchImage2.PNG");
        //screen.Wait(googleSearchScreenPattern, 10);



        Assert.IsTrue(screen.Exists(googleSearchScreenPattern, 10));


        launcher.Stop();
        CloseDriver();



    }
    private void GetWebDriver(string url)
    {
        webdriver = new ChromeDriver();
        webdriver.Manage().Window.Maximize();
        webdriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
        webdriver.Navigate().GoToUrl(url);

    }
    private void CloseDriver()
    {
        webdriver.Quit();
    }
}

我正在使用Visual Studio,我在单元测试项目中导入了Selenium和Chrome的所有nuget包。该测试基本上导航到chrome主页,然后我试图将下面的图像与我在Chrome驱动程序启动的屏幕上看到的图像进行比较。测试不断传递,但我看到的和屏幕截图之间存在差异。如何使用C#.Net和selenium完全匹配sikuli。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

使用模式的方式,它与图像匹配高达70%(默认值)。

您可以尝试更高的精度。 E.g:

var imagePattern = new Pattern(@"C:\Users\image.png", 0.99);

数字为Double,其中1 = 100%,0.1等于10%相似度。