Hi,
Thank you for the update.
Well... Now, with the update from you, the reason seems to be obvious to me. :)
So... Just for the record...
And again - my experience with Python is very limited, thus, I might be wrong with something Python-related, but in general:
-- Usually, it is not the best idea to use more or less persistent variables to keep references to UI objects that potentially can change (be disposed of/recreated/properties changed/etc.);
-- It is even less good idea to keep references to the Aliased objects. On the one hand, Aliases use late binding which makes it possible to declare variables like this: someVar = Aliases.SomeObject even when SomeObject does not exist yet. Variable will be initialized with the actual object reference at the moment when test code will attempt to perform some action over the object. On the other hand, as it is described in the documentation, Aliases object tries to keep a cached copy of the object and may not update it when the real object changes. This requires test developer to be very attentive to potential caching problems and either avoid them or use .Refresh()/.RefreshMappingInfo() properly.