Your e-Business Partner eValid™ -- The WebSite Quality Authority
Browser-Based Client-Side WebSite Mapping & Analysis, Functional Testing and Validation, Server Loading, Page Timing/Tuning, and Quality Monitoring.

eValid -- Patent 8,984,491 [#8, B4] Claims

US Patent 8,984,491 -- Synchronization Checks for Use in Testing Websites -- 17 March 2015

What is claimed is:

1. A non-transitory computer readable medium including at least computer program code for providing a test enabled web browser, said computer readable medium comprising: computer program code for providing web browsing capabilities; and computer program code for testing capabilities of a website hosted by a server and accessible to a computer via a network, wherein the computer program code for testing capabilities of the website includes at least computer program code configured to have a synchronization check in a test script for testing at least one web page of the website, and to automatically synchronize playback of the test script using at least the synchronization check to maintain the test enabled browser's state by means of the synchronization check in the test script to a Document Object Model (DOM) associated with the at least one web page of the website, wherein the synchronization check operates, when executed, to: find a current index of at least one DOM element of the at least one web page based on a specified property name and/or property value; determine whether a property name and/or value is present in the at least one DOM element of the at least one web page having the current index; and after the current index is found and the property name and/or value is determined to be present, wait for the property name and/or value in the at least one DOM element of the at least one web page having the current index to be a particular name and/or value, and wherein the computer program code configured to have the synchronization check is a separate programmatic process from the at least one web page of the website being tested.

2. A non-transitory computer readable medium as recited in claim 1, wherein the synchronization check in the test script and web browsing activities provided by the web browsing capabilities are able to separately access the DOM associated with the at least one web page of the website.

3. A non-transitory computer readable medium including at least computer program code for providing a test enabled web browser, said computer readable medium comprising: computer program code for testing capabilities of a website hosted by a server and accessible to the computer via a network, wherein the computer program code for testing capabilities of the website provides playback of one or more test scripts, the one or more test scripts being separate from the website, wherein the computer program code for testing capabilities is configured to keep track of specific DOM element property name and/or values within a web page of the website being tested to provide support for playback of the one or more test scripts that were recorded from and/or are played back via the test enabled web browser, wherein the use of the named DOM element property values provides support for synchronizing playback of the one or more test scripts, wherein at least the one or more test scripts operate, when performed, to: find a current index of at least one DOM element of the web page based on a specified property name and/or property value; and insert or verify a name and/or value in the at least one DOM element of the web page having the current index, and wherein the computer program code for testing capabilities of the website performs the one or more test scripts using one or more programmatic processes that are separate from the web page of the website being tested.

4. A computing device for testing a website hosted by a remote server, the website having at least one web page, and the web page of the website being presented by a browser operating on said computing device, said computing device comprising: a processing device; and a memory storage device storing computer program code for execution by said processing device, wherein the stored computer program code includes at least: a script component, executed by the computing device, to record at least one test script that reproduces and times user actions and responses; a script playback component, executed by the computing device, to playback the at least one test script; a page evaluation component, executed by the computing device, to read and analyze the contents of web page components, including DOM elements and other objects; and a synchronization component, operating in parallel with browsing the web page via the computing device, to automatically synchronize playback of the at least one test script by said script playback component to maintain browser state while testing the web page including programming through use of one or more user-provided checks of the current Document Object Model (DOM) contents provided in the at least one test script such that the playback of the at least one test script is able to be synchronized, wherein the one or more user-provided checks provided in the at least one test script operate, when executed, to: find a current index of at least one DOM element of the web page based on a specified property name and/or property value; and after the current index is found, wait for the property name and/or value in the at least one DOM element of the web page having the current index to be a particular name and/or value, and wherein the synchronization component is performed by a programmatic process that is separate from the at least one web page of the website.

5. A computer device as recited in claim 4, wherein said script playback is configured to adapt playback of the at least one test script to account for nearly correct matches between recorded facts and actual page properties.

6. A computer device as recited in claim 4, wherein the browser comprises a graphical user interface to provide user access to at least said browsing components and said script component.

7. A computer device as recited in claim 4, wherein synchronization processing by said synchronization component is performed in a separate thread from other threads processing of the web browser.

8. A method for testing one or more web pages of a website, said method comprising: accessing at least one web page of the one or more web pages of the website so as to provide browser activities; programmatically manipulating a test script, the test script being separate from the one or more web pages of the website; and performing, using a computing device, the manipulated test script to perform a test on the at least one web page of the website to be tested, wherein the programmatically manipulating the test script facilitates providing at least one synchronization check in the test script so that the at least one synchronization check can enable the manipulated test script to synchronize with the at least one webpage, wherein the at least one web page has a Document Object Model (DOM) associated therewith, wherein the at least one synchronization check provided by the manipulated test script uses a programmatic process that is separate and apart from the at least one web page of the website being tested, wherein the at least one synchronization check in the test script is operable to interact with at least one DOM element of the DOM in parallel with access to the DOM by the browser activities, and wherein the at least one synchronization check is in the test script operates, when executed, to: find a current index of at least one DOM element of a web page of the website based on a specified property name and/or property value; determine whether a property name and/or value is present in the at least one DOM element of the at least one web page having the current index; and after the current index is found and the property name and/or value is determined to be present, wait for the property name and/or value in the at least one DOM element of the web page having the current index to be a particular name and/or value.

9. A method as recited in claim 8, wherein the at least one synchronization check is directed by user input received from a user.

10. A method as recited in claim 8, wherein the test is a playback test.

11. A method as recited in claim 8, wherein one or more selections with respect to the graphical user interface cause the test script to be modified to include the at least one synchronization check.

12. A method as recited in claim 11, wherein prior to the one or more selections with respect to the graphical user interface, a selection of an element of the web page being tested has been received, and wherein the at least one synchronization check is with respect to at least the element.

13. A method as recited in claim 8, wherein the said method comprises: receiving or recording the test script for testing the at least one web page of the website.

14. A method as recited in claim 8, wherein the performing the manipulated test script comprises performing the at least one synchronization check.

15. A method as recited in claim 14, wherein the synchronization check is performed repeatedly until the at least one synchronization check is satisfied.

16. A method as recited in claim 14, wherein the at least one synchronization check determines whether a DOM property of the at least one DOM element has a particular value.

17. A method as recited in claim 16, wherein the performing of the manipulated test script of the test script awaits for the DOM property to have the particular value.

18. A method as recited in claim 14, wherein the at least one synchronization check determines whether a DOM property of the at least one DOM element exists.