最近有个网友求救,说在用 TC 测试第三方 Delphi 控件 - DevExpress 的 ExpressNavBar 时碰到不可识别和控制的问题。
录制的脚本如下:
procedure Test2;
var p1 : OleVariant;
var w1 : OleVariant;
var w2 : OleVariant;
begin
p1 := Sys.Process('Project1');
w1 := p1.frm_Main;
w1.Click(171, 17);
w2 := w1.dxNavBar1;
w2.Click(94, 9);
w2.Click(48, 62);
p1.Window('TMessageForm', 'Project1').OK.ClickButton;
end;
可以看到对控件的点击依赖坐标,因此需要修改,方法如下:
P:= Sys.Process('Project1').VCLObject('frm_Main');
Navbar:= Sys.Process('Project1').VCLObject('frm_Main').VCLObject('dxNavBar1');
// 先激活组,再调用窗口类中的 dxNavBar1LinkClick 事件,传入要选择的 Links 对象
Navbar.ActiveGroup := Navbar.Groups.Items[1];
P.dxNavBar1LinkClick(nil,Navbar.ActiveGroup.Links[1]);
也可以直接传入 Links 对象 , 但是这种办法无法在界面上看到展开 Group 的效果:
P.dxNavBar1LinkClick(nil,Navbar.Groups.Items[0].Links[0]);