Identifier information is generated for a user interface element of
interest within a user interface of a computer program based on a
description of a hierarchical element path comprising, e.g., some
combination of parent elements that the user interface element inherits
from, class names of user interface elements, module names of application
programs in the element path, and sibling order information. Process
identifiers may also be added to distinguish between user interface
elements of two different process instances of the same program. Unlike
more fragile identifiers, such an element path identifier persists across
instances of the computer program, across different computers, across
different builds of the program, etc. Converting between a user-defined
data type and a string type and vice versa also is provided.