Parses an HTML log file them into an event sequence and a GUI model.

The parsing process can be parameterized. This allows to replace or ignore ids or indexes of GUI elements in the log files. If they are replaced or ignored, the GUI model is more harmonized and GUI elements are considered equal although they are not. This may be helpful, e.g., if you have a table where each row is semantically the same. Without ignoring indexes or ids of the rows, each row is treated separately. But with ignored or replaced indexes or ids, all rows are considered the same.

To ignore the indexes, add -clearIndex=<path to GUI element> as parameter to the command call. To ignore ids, add -clearId=<path to GUI element> to the command call. The path to the GUI element is written using the HTML tag names and either their index or their id as identification. E.g., to denote all rows in a table where the table has the id "table_1" you can specify "table(htmlId=table_1)/tbody/tr". To denote e.g. all divs being the child of a div with an index 1, you specify "div[1]/div".  

To replace ids, a separate files with mappings must be created. The path to this file must be provided using the idReplacements parameter. The file follows a typical properties format. The key is the path denoting the GUI element of which the id shall be set. The value is the actual id. The key may contain the # character to denote a wildcard in html ids. This allows matching several GUI elements with similar ids at once and to give them the same id. An example entry of this file is:

div(htmlId\=id_number_#)=div_number_X

This line would give all divs with an id "id_number_#" where # denotes any character the new id "div_number_X". Please note that for specifying the keys, it is required to escape any = sign in the key specification. This is usually required if the path to the denoted GUI elements denotes elements by their id as shown in the example.



$USAGE$

<file>
    path to the file to be parsed 
[<sequenceNames>]
    array of sequences into which the parsed events shall be stored
{-idReplacements=path/to/replacementfile}
    used to define id replacements as described in a separate file
{-clearId=path/to[0]/gui(htmlId=element)}
    used to define GUI elements of which the ids shall be ignored
{-clearIndex=path/to[0]/gui(htmlId=element)}
    used to define GUI elements of which the indexes shall be ignored

Example(s):
parseDirHTML /path/to/file.log
parseDirHTML /path/to/file.log sequences -clearId=table(htmlId=overview)/tbody[0]/tr
parseDirHTML /path/to/directory sequences -idReplacements=idReplacements.txt -clearId=body