iOS menu appears after a higher option is selected, but TC can't see it.
Hello all, i am hoping someone can point me in the right direction of an issue i am having with testing an iOS app.
I have a menu down the left hand side. Dependant on what has been selected, the left hand menu can change.
On the app it has a Wall Height and when it is over a certain height a option appears at the bottom of the left hand nav.
My script basically reuses 2 procedures and searches the Left Hand Nav for the item label working bottom up, and this works for all options apart from this options that appears at the end after being activated higher up.
When debugging i noticed that the check for the label starts the one above and doesn't even start at the now new bottom label, but the original last label.
Is there any way to have TC capture the new left hand menu list?
procedure SetLeftHandMenu(MenuName : String; ControlName : String; Driver: OleVariant);
var
LeftHandOption : OleVariant;
Value : OleVariant;
begin
Value := Project.Variables.Driver.Value(ControlName);
If Value <> 'Blank' then
begin
LeftHandOption := FindMenuLabel(MenuName);
if LeftHandOption <> nil then
begin
LeftHandOption.Touch;
end;
end;
end;
function FindMenuLabel(MenuName: String) : String;
var
I: Integer;
MenuValue;
begin
Result:=nil;
Aliases.Device.processApplication.window0.tableview0.Refresh;
MenuValue := Project.Variables.Driver.Value(MenuName);
if MenuValue <> 'Blank' then
begin
Delay(1000);
for I:=0 to cleftnavtable.ChildCount -1 do
if cleftnavtable.Child[I].Label.ab_text = MenuValue then
begin
Result := cleftnavtable.Child[I];
break;
end;
end;
end;I have resolved this by changing my script left nav search to the below. Much faster and more stable with changing menus than my previous method.
procedure Find_Label_Touch(ControlName : String; Driver: OleVariant); var target_CollectionView; target_Label; Value; begin Value := Project.Variables.Driver.Value(ControlName); If Value <> 'Blank' then begin target_CollectionView := Aliases.Device.processApplication.window0.tableview0; target_Label := target_CollectionView.Find( ['ObjectType', 'ObjectText'], ['Label', Value], 20000); target_Label.Touch(); end; end;