我目前正在自动化测试用 vb6 开发的遗留应用程序,它使用 Janus Systems 的 GridEx2000b 控件。
为此,我使用 Ranorex 作为我最喜欢的开发测试自动化的工具,这样我就可以使用 c# 开发测试代码。
我现在的问题是自动化 GridEx 2000b 控件,Ranorex 开箱即用没有任何支持。因此,我试图找出一个解决方案,我可以使用我可以找到的控件的 Win32 句柄来引用 GrixEx 控件,这样我就可以使用组件中的 ComInterface 来导航自动化控件。
我有一个解决方案的想法,但我不知道该怎么做,我希望你们能帮助我。
问题的伪代码:
using GridEX20;
class GridExWrapper
{
public GridEX20.GridEXClass Instance;
public GridExWrapper(IntPtr win32handle)
{
Instance = (GridEX20.GridEXClass)Win32ControlUtilities.GetControlReference(win32Handle);
}
}
class Win32ControlUtilities
{
public static SomeKindOfHandle GetControlReference(IntPtr win32Handle)
{
...
...
...
}
}
我将从 Ranorex 或其他一些间谍工具获得 win32handle。然后我可以像这样使用 GridExWrapper。
using NUnit.Framework;
class Program
{
[Test]
public void control_should_have_9_items()
{
/// Get win32 handle from Ranorex
IntPtr win32handle = XXXXXX;
int expectedItemCount = 9;
GridEXClass control = new GridExWrapper(win32handle);
Assert.AreEqual(expectedItemCount, control.ItemCount);
}
}