METHOD FOR WEB BROWSER AUTOMATION

Abstract: A method and apparatus allowing for entry of form data in a browser. In the described embodiment, a browser automation program executes on the user's computer and communicates with a browser program in order to determine when forms are encountered.

Description: METHOD FOR WEB BROWSER AUTOMATION This application claims the benefit of U.S. Provisional Patent Application No. 60/137,905, filed June 7, 1999. BACKGROUND OF THE INVENTION 1. FIELD OF THE INVENTION The present invention relates to the field graphical user interfaces and more particularly to an improved method for entering data on forms. 2. DESCRIPTION OF THE RELATED ART Any number of web sites require entry of various information in order to gain full access to the site and the services offered by the site. For example, many commercial sites require a user to set up an account and, in doing so, to provide various levels of personal information. Typically, the information is relatively repetitive from site to site— e.g., name, address, telephone number, email address, etc. In some cases, the information must be entered each time the user attempts to use the site. In other cases, an account is actually set up and maintained and the user only needs to enter the full information the first time the site is accessed. An example of an account set up screen is provided in Figure 1 that is a screen shot from the Eddie Bauer web page. As can be seen, the user is invited to complete the shipping and billing information (i.e., name, email address, shipping address, etc.) or alternatively, the user may "Click here to log in and fill in ordering information automatically" (presuming the user has a previously set up account. One method of addressing the inconvenience of repetitive data entry of account information is the so-called "wallet" technology. Using "wallets", a user may enter certain information (name, address, billing / credit card information) once and sites that run the particular wallet technology will be able to receive the information without requiring the user to reenter the data. Unfortunately, this technology requires sites to execute the wallet technology in order to allow a user to benefit from it. An overall diagram illustrating a particular embodiment of the wallet technology is show in Figure 2. One other method of addressing the inconvenience of repetitive data entry is the • so-called "type-ahead" technology in which the user's computer system attempts to "remember" certain information and, if a user starts to type a key sequence, the system attempts to recognize the key sequence and complete the typing. For example, if the user, named John Smith, starts to type his name in a name field, the system may recognize the user is typing "John Smith" after the user has only typed "Joh" and automatically fill in the remaining "n Smith". Unfortunately, the type ahead technology is limited in that it may or may not correctly recognize the phrase being typed, implementations are typically browser dependent, and the user must type information into each field in the form separately. Thus, it would be useful to provide a method and apparatus that reduces the inconvenience of repetitive data entry. It would be particularly useful to provide a method and apparatus which was not browser dependent and which did not require implementation by each individual web site in order to allow a user to benefit from it. SUMMARY OF THE INVENTION A method and apparatus providing for improved automation for entry of data in forms in a web browser. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is an exemplary form displayed by a web. browser. Figure 2 illustrated a prior all wallet technology. Figure 3 illustrates a network as may utilize an embodiment of the invention. Figure 4 illustrates a site helper window as may be utilized by an embodiment of the present invention. Figure 5 illustrates a login helper window as may be utilized by an embodiment of the present invention. Figure 6 is a flow diagram illustrating a method of completing a form as may be utilized by an embodiment of the present invention. Figure 7 is a flow diagram illustrating a method of displaying a helper window as may be utilized by an embodiment of the present invention. Figures 8(A) - (F) illustrate a method of completing a form as may be utilized by an embodiment of the present invention. Figure 9 is a flow diagram illustrating against method of completing a form as may be utilized by an embodiment of the present invention. For ease of reference, it might be pointed out that reference numerals in all of the accompanying drawings typically are in the form "drawing number" followed by two digits, xx; for example, reference numerals on Figure 1 may be numbered 1 xx; on Figure 3, reference numerals may be numbered 3xx. In certain cases, a reference numeral may be introduced on one drawing and the same reference numeral may be utilized on other drawings to refer to the same item. DETAILED DESCRIPTION OF THE EMBODIMENTS THE PRESENT INVENTION Figure 3 provides a diagram illustrating an overall system implementing an embodiment of the present invention. In the described embodiment, a user computer 301 is automated with browser automation software 301. The browser automation software interfaces with any of a number of web browsers 303 such as the Netscape Navigator available from Netscape Corporation of Mountain View, California or the Internet Explorer available from Microsoft Corporation of Redmond, Washington. As a user moves from web page to web page using the browser 303, the browser automation program 302 communicates with the browser and determines the Universal Resource Locator (URL) being browsed. In certain embodiments, functionality of the browser automation program 302 may be added to the browser program 303 rathdr than executed the automation program 302 as a separate executable program. The browser automation program 304 allows the user to store on the user's computer 301 user data 304. In the described embodiment, the user data 304 may be stored in an encrypted in a format. The data may be encrypted based on a user specified password using conventional encryption techniques allowing for decryption of the user data 304 if the correct password is entered by the user. In one embodiment of the present invention, if the user does ' not specify a password the password is set to a NULL value. The user data 304 may include the user's name, address, telephone number, email address and other contact infoπnation. In the described embodiment the user may enter both home and work contact information as well as one other set of contact information (e.g., vacation home, etc.) In alternative embodiments, the user may be allowed to enter any number of sets of contact information. In addition, for each ascent of contact information the user Maine and terms other information such as credit card information which may be used for ordering goods and services. The client data also includes login names and passwords that may be used for accessing various web pages (e.g., Hotmail, - Excite, Yahoo, etc.) in addition to the user information that is stored on the user's computer 301, in the described embodiment certain information is the stored on the browser automation home site 305 in what will be termed a customer information database. In the described embodiment, this information includes: the customer's IP address; the customer's name; the customer's email address; the customer's zip code; optionally, the customer's password; the date and time the customer downloaded the browser automation program 302; the date and time the customer first used the browser automation program 302; an affiliate identification code (if the customer was referred by an affiliate); and optionally, some additional identification information allowing for user authentication in the event that the user forgets his or her password. In the described embodiment, the browser automation program 302 may gain l nowledge ofthe format of a form encountered on any number of web sites. For ~ purposes of this application, a web site for which the format of the form has been learned by the program 302 will be termed a "scripted" site. Scripting of sites will be discussed in greater detail below. If the form has been scripted, a "site helper window", as shown in greater detail with reference to Figure 4 showing site helper window 401, is displayed for the user by browser automation program 302. If the form has not been scripted, in the described embodiment, the site helper window is not displayed. The user may activate the site helper window and use it to manually complete the form in this instance. Certain advantageous techniques of the described embodiment for allowing entry of data into the form will be described below. Thus, in summary, advantageously, the site helper window is automatically displayed when it is useful to the user and not displayed when it is not helpful (i.e., it is displayed when a script is available and is not automatically displayed otherwise.) Turning to Figure 6, a flow diagram illustrating an overall method of the described embodiment is provided. As has been described, initially, the user selects a web page, block 601. The web page may be selected using any of a number of conventional methods including the user of typing a URL into the web browser 303 or the user selecting a hyperlink. The browser automation program 303 determines if the web page has been "scripted". In the described embodiment, a table 309 is stored locally on the user's computer 301 that details the web pages that have been scripted. The table 309 is updated periodically from information received from the browser automation home site 305. In one embodiment, the table 309 is stored as a set of hash values allowing for efficient storage of web page identifiers. If the site has been scripted, branch 304, the script is obtained, block 607. In the described embodiment, the script is obtained by making a request to the browser automation home site 305 over the network 310. Of course, in alternative embodiments, the user's computer 301 may not store the table 309 and a request can be made to the browser automation home site 305 for each web site encountered in order to determine if the web site has been scripted. While avoiding the need for local storage of the table 309, this architecture does require additional network traffic. Additionally, in certain embodiments, the scripts may be stored locally on the user's computer 301 avoiding the need to access the browser automation home site 305. While such embodiment would decreased the amount of network traffic, it would require additional local storage and would require some mechanism to make certain that be locally stored at scripts are kept updated. As one additional alternative, scripts may be cached locally. Thus, only scripts which have been previously accessed by the user would be stored locally reducing the need for repetitive access to the browser automation home site 305 while not requiring local storage capacity for all scripts. In any event, once the script is obtained, block 607, the helper window 401 is displayed, block 609. A method for displaying the helper window as may be utilized by an embodiment of the present invention is illustrated by Figure 7. As a shown in Figure 7, based on the script, the browser automation program 302 imtially determines the fields to be displayed, block 701. In the described embodiment, only those fields that are utilized on the form of the current web page are displayed in the helper window. Advantageously, this allows the user to quickly see what information will be provided to the web site if the user chooses to fill in the form using the helper window. In addition, the browser automation program 302 determines the field labels to utilize in the helper window based on the script, block 703. In the described embodiment, the field labels correspond to the fields on the form. Finally, a customized helper window is displayed based on the script, block 703. Thus, for example, if the form includes a field to provide an email address, the helper window 401 displays the user's email address (assuming that the user had previously stored the email address in the user data 304). If there was not a field on the form for the email address, the user's email address would not be displayed in the helper window. Likewise, if the form labeled the field for the email address as "email address", it would be displayed on the helper window with the label "email address" and, alternatively, if the form labeled the field for the email address as "email", it would be displayed with the label "email". Returning to the description of Figure 6, the user is allowed to fill in the form based on the information in the helper window by simply selecting the fill in form option. Alternatively, the user may select alternative information in the helper window. For example, the user may wish to use the home address information but the work telephone information for contact information. FORM HELPER FOR NON-SCRIPTED SITES Thg above description provides information on how an embodiment of the present invention may be useful when a site is previously scripted. As mentioned above, in addition, the described embodiment may be useful even where a site is not previously scripted. Referring back to Figure 6, if the site was not scripted, the user may manually pop-up the form filler helper window. This is illustrated with reference to Figures 8(A)- (F). Initially, a form is encountered on a web page 801 that has not been scripted. As discussed in connection with Figure 6, because the form it is not scripted, jn the described embodiment the helper window does not automatically pop-up. The user may manually select a form filler helper window 802 as is illustrated by Figure 8(B). The form filler helper window 802 may be selected by any of a number of conventional methods. For example, an icon may be placed in the toolbar of a Windows™ display. Of course, in alternative embodiments, the helper window could automatically pop-up even for forms that are not scripted. In any event, with reference to Figure 9, after the form filler helper window 802 is displayed, the user selects a first field on the form to be filled in, block 901. In the illustrated example, the user has selected the first name field. The field may be selected in any conventional manner, most typically by placing the cursor on the field. The user then selects a field from the form helper window 802, block 903. Advantageously, the described embodiment provides a tab 803 that the user may select (again, the selection of the tab may be done in any conventional manner most typically by placing the cursor on the tab). By selecting the tab 803, the full content of the field is selected. The user then may transfer the selected data in the field on the form filler helper window 802 to the selected field on the form 801, block 905. The user may cause this transfer, for example, by double clicking on the field or by "dragging" the information across the screen. Of course, in alternative embodiments a different indicator than the tab 803 may be utilized without departure from the spirit and scope of the present invention. Thus, the tab 803 may be referred to more generically herein as a select full field indicator. Advantageously, after the data is transferred from the form filler helper window 802 to the field on the form, the browser automation program 302 causes the next field in sequence on the form to be automatically selected without requirement for user intervention. Thus, the user can immediately move to selecting the next field on the form filler helper window 802 without need to return the cursor to the form 801. Figure 8(D) illustrates that the contents of the field 803 have been transferred to the form in field 805. As can be seen from a review of form 801, the particular form requires entry of the first name in one field and the last name in another field. In the form filler helper window 802, both the first name and last name, together with the middle initial, are included in a single field. Advantageously, the form filler helper I window 802 allows the user to select only a portion of seen field by placing the cursor on the word that is desired to be selected. When the cursor is placed on a word in the field only that word is selected for transfer to the form 801. This is illustrated by Figures 8(E) which illustrates selecting the word "John" 807 and by Figure 8(F) which illustrates that only the word "John" was transferred to the first name field. SCRIPTING OF SITES As has been discussed, in the described embodiment, forms for web sites are scripted and the scripts are made available to the browser automation program 302. One method creation of scripts is to automatically create the scripts based on the user to having previously filled out the same form (using, for example, the above described method.) The browser automation program 302 then associates the content and order of the fields for the form with the content of personal data in the user database 304 (e.g., the program 302 learns that the field named "Name" on a particular form should be associated with the user's name in the user database 304.) As one drawback to this method, it may be difficult (if not impossible) to provide corresponding field names on the helper window 401 because the field names may be provided in the hypertext markup language (HTML) for the web site as bit mapped graphics and would be difficult to recognize. A second method is for the form to have been analyzed and information stored regarding the fields and expected contents manually. This may be done, for example, for popular web sites which contain forms. The described embodiment provides for advantageously notifying the proprietors of the browser automation home site 305 that a form of interest to a user has not been scripted by having the browser automation program notify the browser automation home site 305 each time the user completes a form using the manual form filler method just described, block 909. The browser automation home site 305 may then compile statistics on frequently accessed forms, block 911 and the priority for scripting the forms may be based on these statistics. In addition, the browser automation program 302 may analyze the underlying structure of the form itself to determine if there are fields for which data is available from the user data 304. Typically, this process may involve analyzing the HTML or other underlying code received from the visited site 306. For example, password fields may be recognized by analyzing the HTML because these fields are typically encoded to hide the user's input as it is typed. In addition to assisting in completing relatively long forms as was shown in Figure 4 and Figure 8, the browser automation program 302 can assist with other types of forms. An example, is provided in Figure 5 in which a login helper window is displayed. The browser automation program 302 has learned the user's login names and passwords for given web sites (in this case, Hotmail). One problem increasingly facing web users is the need to remember not only many passwords but also many user IDs. The browser automation program stores in the user data file 304 the login IDs and passwords (in an encrypted format) for sites for which the user has registered. When the user accesses the URL for a site, the user is presented with the login helper 501 which allows the user to select the appropriate user ID and which automatically then enters the correct password for the user. Of course, the user may have multiple user IDs for a particular site and the browser automation programs 302 store each of the various IDs and the user may select the desired ID from a list in window 501. The user may be provided with the option of having the form automatically filled in without any user interaction. Thus, for example, when a login form is encountered, the browser automation program 302 may automatically fill in the form avoiding the need for the user to enter any keystrokes to log in to the site. In either of the window 401 or 501, each field may be a drop down list or some well-known form of data entry allowing the user to select from various stored data to complete the form. The windows 401 and 501 also allow the user to edit the data in the window and to add new data to be displayed on the drop down list. In one embodiment, changes to the information stored in the user data 304 causes notifications to be automatically sent to web sites which have been supplied with this data. Thus, for example, if the user changes the home address information, information may be sent to those web sites which have been previously supplied with the user's home address information notifying the web sites of the change. The appropriate scripts for updating this information may be stored, for example, on the home site 305. ALTERNATIVES TO THE PREFERRED EMBODIMENT OF THE PRESENT INVENTION There are, of course, alternatives to the described embodiment which are within the reach of one of ordinary skill in the relevant art. The present invention is intended to be limited only by the claims presented below. Thus, what has been disclosed is a method and apparatus for entry of form data in a web browser.

Claims: CLAIMS What is claimed is: 1. A method for entering form data in a browser comprising: a) storing data for a user for retrieval; b) encountering a form to be completed while browsing; c) providing a dialog window to the user to allow the user enter the stored data in the form.

Inventors: COLEMAN DENIS R, MARTIN TONY G, PAPUC SORIN V, PENNELL MARK E, ZOROVIC ALEKSANDAR SASA, COLEMAN, DENIS, R., MARTIN, TONY, G., PAPUC, SORIN, V., PENNELL, MARK, E., ZOROVIC, ALEKSANDAR, SASA
Applicants: GATOR COM, GATOR.COM
Application year: 2001
Main classification: G06F17
IPC codes: G06F3, G06F15, G06F17