Czyli uruchamiamy z poziomu frameworka WinAppDriver i odpalamy aplikację Notepad++. Wszystkie aplikacje są darmowe (wymagają niestety płatnego Windowsa 10, lub darmowej wersji studenckiej). Nie testowałem podanych dalej rozwiązań na innych wersjach Windowsa niż 10.

Zaczniemy od kodu uruchamiającego WinAppDrivera (uprzednio zainstalowaliśmy go w domyślnej lokalizacji).

Z jakiegoś powodu WordPress nie przyjmuje stringa cmd[kropka]exe, w związku z tym linijka 23 w kodzie musi zostać podmieniona, co zaznaczyłem odpowiednim komentarzem.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using TechTalk.SpecFlow;
using OpenQA.Selenium.Appium.Windows;
using OpenQA.Selenium.Remote;
using System;
using System.Diagnostics;

namespace NotepadPlusPlusTestFramework
{
    public class DriverSession
    {
        protected const string WindowsApplicationDriverUrl = "http://127.0.0.1:4723";
        public static WindowsDriver<WindowsElement> session;

        // set this path to your installed notepad++ executable
        private const string NotepadPlusPlusAppId = @"I:\coding\Notepad++\notepad++.exe";

        private static Process _process;

        [BeforeScenario]
        public void Setup()
        {
            //Launch driver
            _process = new Process
            {
                StartInfo =
                {
                    FileName = "cmd(dot)exe", // change "(dot)" to "."
                       Arguments = "/C "C:\\Program Files (x86)\\Windows Application Driver\\WinAppDriver.exe""
                }
            };
            _process.Start();

            if (session == null)
            {
                DesiredCapabilities appCapabilities = new DesiredCapabilities();
                appCapabilities.SetCapability("app", NotepadPlusPlusAppId);
                session = new WindowsDriver<WindowsElement>(new Uri(WindowsApplicationDriverUrl), appCapabilities);
            }
        }

        [AfterScenario]
        public void TearDown()
        {
            // Close the application and delete the session
            if (session != null)
            {
                session.Close();
                session.Quit();
                session = null;
            }
        }
    }
}

Nasz kod w tej chwili powinien uruchomić w pierwszej kolejności WinAppDrivera, a następnie uruchomić NotepadPlusPlusa. Musimy tylko odpowiednio ustawić ścieżki dostępu na naszym dysku.


Co już mamy:

Pozostało nam do zrobienia (kolejne posty)

  • Napisanie PageObjectów (mapowanie widoków aplikacji na obiekty w C#) dla aplikacji OneNote.
  • Napisanie reportera który wygeneruje nam raporty z testów automatycznych (i najlepiej żeby robił screenshoty).