Тестирование 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).