c # — не удается автоматизировать редактирование элемента управления и списка с помощью TestStack.White

У меня есть приложение, написанное с помощью Visual Studio 2012 professional в C ++ MFC. В настоящее время я хочу создать несколько сценариев автоматизации с использованием инфраструктуры TestStack.White, написанной на C #.

Я не могу контролировать список и редактировать контроль.
Я использую шпион ++. Элемент управления для редактирования вложен в групповой блок, и я не могу проверить идентификатор автоматизации.

Пример моего кода

var psi = new ProcessStartInfo(ExeSourceFile);
application = Application.AttachOrLaunch(psi);
mainWindow = application.GetWindow(SearchCriteria.ByText(applicationName), InitializeOption.NoCache);

Где ExeSourceFile — это путь к приложению.

Это способ, которым я пытался. Где IDC_Edit — это идентификатор дизайнера.

TextBox TextObj = mainWindow.Get<TextBox>     (SearchCriteria.ByAutomationId("IDC_Edit"));
  1. Как мне контролировать данные строки проверки / подсчета списка (в настоящее время я использую стрелки вверх и вниз в качестве обходного пути)?
  2. Как мне управлять «Редактировать контроль» внутри группы (в настоящее время я использую клавишу Tab для изменения фокуса)?

Я пытался получить элементы управления MFC по идентификатору, но это не удалось. Должен ли я использовать инструмент, отличный от Spy ++ или другого фреймворка?

Редактировать:

Вот скреншот форму проверяю.
Осмотреть скриншот

Я пытался с идентификатором «1221», а также «0x1221», но безуспешно.

2

Решение

Я использовал мастер MFC для создания визуально выглядящего студийного приложения и добавил элемент управления редактирования в окно свойств, чтобы я мог протестировать элемент управления редактирования. Я не смог добавить групповое поле, потому что CGroupBox не существует из того, что я мог сказать. Если бы вы могли предоставить некоторый код для того, как реализован групповой блок, я мог бы добавить это к своему ответу.

После всего этого я надеюсь ответить на некоторые ваши вопросы.

Вот консольное приложение, которое я написал на C # для автоматизации «Списка» и «Редактирования».

 using System;
using TestStack.White;
using TestStack.White.UIItems;
using TestStack.White.UIItems.Finders;
using TestStack.White.UIItems.ListBoxItems;

namespace ConsoleApplication1
{
public class Program
{
public static void Main(string[] args)
{
var application = Application.Attach("MFCApplication1");
var window = application.GetWindow("MFCApplication11 - MFCApplication1");

//Edit Control
var propertyPane = window.Get<Panel>(SearchCriteria.ByAutomationId("150"));
var edit = propertyPane.Get<TextBox>(SearchCriteria.ByAutomationId("1"));

//Type this text into the edit control
edit.Text = "Hello World";

//List View
var output = window.Get<Panel>(SearchCriteria.ByAutomationId("149"));
var list = output.Get<ListBox>(SearchCriteria.ByAutomationId("2"));

//Output the count of how many rows exist
Console.Out.WriteLine(list.Items.Count);

//Select the second row
list.Items[1].Select();
}
}
}

Вот изображение приложения, которое я протестировал с автоматически выделенными элементами управления.

Пример приложения MFC

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]