1. A computer-implemented method for identifying client states, the computer-implemented method on a data processing system comprising: receiving, by a processor of the data processing system, a set of paths representative of a document object model (DOM) associated with a web page of a rich Internet application, wherein the receiving further comprises: initializing a list of all paths as empty; identifying using a selected predetermined crawling strategy Event X as a next event to execute; capturing a representation of an html_before execution of the Event X; executing the event X; capturing a representation of an html_after execution of the Event X; identifying a Delta X as a difference between the html_before execution of the event X and the html_after execution of the Event X; defining Path X as a relaxed XPath of Delta X; and responsive to a determination Path X does not exist in the list of all paths, adding Path X to the list of all paths; defining a set of current states as the set of current states determined for Delta X; for each path in the set of paths received by the processor: extracting a subtree, as Subtree X, for a current path; traversing known sub-paths under the current path and deleting corresponding subtrees from Subtree X; reading contents of and determining states of Subtree X to form a State X; and adding the State X to the set of current states; associating the set of current states with Event X as possible destination states of the Event X; and responsive to a determination no more paths exist, returning the set of current states of the rich Internet application.