1. A computer-implemented method comprising: within an automated user interface test environment, a testing program that emulates keyboard and mouse data invoking a request for choosing a user interface element that is to be made visible; the testing program determining at least one parent element of the user interface element; the testing program performing a make child visible action for the at least one parent element of the user interface element; and the testing program ensuring that the user interface element is selectable; wherein the testing program performing a make child visible action comprises: a) if the parent element is scrollable, then a scrolling component of the testing program scrolling the parent element in a move direction until a bounding rectangle of the parent element and a bounding rectangle of the user interface element overlap, wherein there are N child elements of the parent element, and wherein the scrolling the parent element comprises: searching for a visible child element of the N child elements by recursively checking for visibility of each nth child element of the N child elements, initially n=N/2 or n=N/3, and at each successive recursion level n=n/2; once the visible child element is found, finding a first visible child element of the N child elements using a binary search; and determining, based on a location of the first visible child element and a location of the user interface element, the move direction for scrolling the parent element; b) if the parent element is expandable, then an expanding component of the testing program expanding the parent element; c) if the parent is not at top of the user interface element hierarchy, then a component of the testing program moving up one level of the hierarchy such that a grandparent of the user interface element is the new parent element and the parent element of the user interface element is the new user interface element.