Тестирование Excel с Winappdriver

Где я могу найти хороший пример тестирования надстройки Excel с пользовательскими элементами ленты с помощью winappdriver.

То, что у меня пока есть, выдает исключение:

System.InvalidOperationException Элемент не может быть расположен на странице с использованием заданных параметров поиска.

Я использую последнюю версию winappdriver

Код:

private const string ExcelAppId = @"C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE";

private const string WindowsApplicationDriverUrl = "http://127.0.0.1:4723";

DesiredCapabilities appCapabilities = new DesiredCapabilities();
            appCapabilities.SetCapability("app", ExcelAppId);
            appCapabilities.SetCapability("deviceName", "WindowsPC");
            appCapabilities.SetCapability("platformName", "Windows");

session = new WindowsDriver<WindowsElement>(new Uri(WindowsApplicationDriverUrl), appCapabilities);
session.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);

session.FindElementByName("Blank workbook").Click();

2 ответа

Я работаю над автоматическим тестированием надстройки Excel с помощью WinAppDriver. В моем случае я запустил Excel без заставки. Для этого укажите /e в качестве параметра приложения.

session.SetCapability("appArguments", "/e");

С этого момента вы сможете найти меню "Файл" и "Создать" по имени и щелкнуть по ним. Добавьте несколько секунд явного ожидания и перейдите к поиску WindowsElement "Пустая книга" таким же образом.

Надеюсь, это ответит на ваш вопрос, напишите здесь, если потребуется дополнительная помощь. Я экспериментирую с WinAppDriver уже несколько месяцев, а также готовлю курс Udemy по этой теме, который почти готов к публикации. Это интересный инструментарий.

Вам необходимо установить Appium.WebDriver, Selenium.support, Selenium.webDriver из "Управление пакетами Nuget", вы можете использовать код appium, например:

using OpenQA.Selenium;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Windows;

class Excel
        {
            public void ExcelCase() { 
        WindowsDriver<WindowsElement> driver;
            AppiumOptions desiredcap = new AppiumOptions();
            desiredcap.AddAdditionalCapability("app", @"C:\Program Files\Microsoft Office\Office16\EXCEL.EXE");
                driver = new WindowsDriver<WindowsElement>(new Uri("http://127.0.0.1:4723"), desiredcap);
 driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);

                if (driver == null)
                {
                    Console.WriteLine("App not running");
                    return;
                }
    }}

Попробуйте этот код и прокомментируйте, если у вас возникнут проблемы.

Открывается ли вообще Excel при запуске теста?

Если по Имени не работает, у меня это тоже иногда не работает, вы можете использовать accessibilityId

session.FindElementByAccessibilityId("AIOStartDocument").Click();

или используйте сочетание клавиш, чтобы открыть пустую книгу, например:

session.Keyboard.SendKeys(Keys.Alt + "f" + "l" + Keys.Alt);

Я предпочитаю использовать: session.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5); вместо Thread.sleep(5).

Другие вопросы по тегам