|
US Patent 10,489,286 -- Driving a web browser for testing web page using a document object model -- 26 November 2019
What is claimed is:
1. A computing device, comprising: a memory; web browser program code stored in the memory; and a processor configured to perform the web browser program code, wherein the web browser program code, when performed, provides a web browser operating on the computing device, wherein the web browser program code provides the web browser with Document Object Model (DOM) access capabilities, wherein the web browser program code, executable by the computing device, includes at least: computer program code for testing and analysis of a web page as rendered by the web browser; computer program code for accessing an attribute or property value of an element of a DOM of the web page, wherein the computer program code for accessing the attribute or property value of the element of the DOM of the web page accesses the DOM of the web page using a browser programming interface that enables the web browser program code to have access to the DOM, the browser programming interface is supported by an API underlying the web browser program code for providing a plurality of library function calls or methods that are accessible by the web browser program code, and wherein the computer program code for accessing the attribute or property value of the element of the DOM of the web page accesses the attribute or property value of the element of the DOM of the web page for purposes of the testing and analysis of the web page rendered in the web browser, wherein the web browser program code supports at least one command, provided to the web browser via the browser programming interface, to facilitate synchronized testing and analysis of asynchronous processes of the web page rendered by the web browser using the underlying API, and wherein the at least one command includes a DOM index value, a DOM property name and a DOM property value, and causes examination of a name and a value of a property found in the DOM of the web page at the DOM index value to determine whether the name and the value match the DOM property name and the DOM property value, respectively.
2. A computing device as recited in claim 1, wherein the web browser program code, executable by the computing device, includes at least: computer program code for receiving an indication of a DOM modification to be performed, and wherein the computer program code for accessing the attribute or property value of the element of the DOM of the web page comprises computer program code for modifying the attribute or property value of the element of the DOM of the web page for purposes of the testing and analysis of the web page rendered in the web browser.
3. A computing device as recited in claim 2, wherein the indication of the DOM modification to be performed is received from the memory or from a user of the computing device.4. A computing device as recited in claim 2, wherein the DOM modification sets an attribute of the element of the DOM of the web page to a particular value.
5. A computing device as recited in claim 1, wherein access to the DOM of the web page by the web browser program code for the testing and analysis of the web page rendered in the web browser uses only the web browser program code and the API underlying the web browser program code.
6. A computing device as recited in claim 1, wherein the examination of the name and the value of a property found in the DOM at the DOM index value repeats until the name and the value match the DOM property name and the DOM property value, respectively.
7. A computing device as recited in claim 6, wherein the least one command includes a maximum time value, and wherein the examination of the name and the value of a property found in the DOM at the DOM index value no longer repeats once the maximum time value is exceeded.8. A computing device as recited in claim 6, wherein the examination of the name and the value of a property found in the DOM at the DOM index value repeats until the name and the value fail to match the DOM property name and the DOM property value, respectively.
9. A computing device as recited in claim 8, wherein the least one command includes a maximum time value, and wherein the examination of the name and the value of a property found in the DOM at the DOM index value no longer repeats once the maximum time value is exceeded.
10. A non-transitory computer readable medium including at least computer program code operational on a computer for providing a web browser, said computer readable medium comprising: computer program code for providing web browsing capabilities and testing capabilities for a website being hosted by a server and accessible to the computer via a network, the website including at least one web page, wherein the computer program code for providing web browsing capabilities and testing capabilities, when performed, provides the web browser with Document Object Model (DOM) access capabilities, and wherein the computer program code for providing web browsing capabilities and testing capabilities includes at least: computer program code for testing and analysis of a web page as rendered by the web browser; and computer program code for accessing an attribute or property value of an element of a DOM of the web page, wherein the computer program code for accessing the attribute or property value of the element of the DOM of the web page accesses the DOM of the web page using a browser programming interface that enables the computer program code for providing web browsing capabilities and testing capabilities to have access to the DOM, the browser programming interface is supported by an API underlying the computer program code for providing web browsing capabilities and testing capabilities for providing a plurality of library function calls or methods that are accessible by the computer program code for providing web browsing capabilities and testing capabilities, wherein the computer program code for accessing the attribute or property value of the element of the DOM of the web page accesses the attribute or property value of the element of the DOM of the web page for purposes of the testing and analysis of the web page rendered in the web browser, and wherein the computer program code for providing web browsing capabilities and testing capabilities supports at least one command, provided to the web browser via the browser programming interface, to facilitate synchronized testing and analysis of asynchronous processes of the web page rendered by the web browser using the underlying API, and wherein the at least one command includes a DOM index value, a DOM property name and a DOM property value, and causes examination of a name and a value of a property found in the DOM of the web page at the DOM index value to determine whether the name and the value match the DOM property name and the DOM property value, respectively.
11. A non-transitory computer readable medium as recited in claim 10, wherein the computer program code for providing web browsing capabilities and testing capabilities includes at least: computer program code for receiving an indication of a DOM modification to be performed; and wherein the computer program code for accessing the attribute or property value of the element of the DOM of the web page comprises: computer program code for accessing a DOM pertaining to a web page of the website to locate an attribute or property value of an element of the DOM of the web page; and computer program code for modifying the attribute or property value of the element of the DOM of the web page in accordance with the indication of the DOM modification to be performed.
12. A non-transitory computer readable medium as recited in claim 11, wherein the indication of the DOM modification to be performed is previously stored to and then received from the computer.15. A non-transitory computer readable medium as recited in claim 10, wherein the computer program code for testing and analysis of a web page as rendered by the web browser operates to perform functional testing and validation, and wherein the testing and analysis of the web page rendered by the web browser includes analysis of performance of the web browser in rendering the web page.13. A non-transitory computer readable medium as recited in claim 11, wherein the DOM modification sets an attribute of the element of the DOM of the web page to a particular value.
14. A non-transitory computer readable medium as recited in claim 11, wherein the computer program code for modifying the attribute or property value of the element of the DOM of the web page modifies the attribute or property value of the element of the DOM of the web page for purposes of the testing and analysis of the web page rendered in the web browser.
16. A non-transitory computer readable medium as recited in claim 10, wherein the computer program code for providing web browsing capabilities and testing capabilities includes at least: computer program code for supporting at least one user input command, provided to the web browser via the browser programming interface, to simulate an event action being received at the web browser to thereby facilitate testing and analysis of the web page rendered by the web browser.
17. A non-transitory computer readable medium as recited in claim 16, wherein the at least one user input command is an element click command.19. A non-transitory computer readable medium as recited in claim 10, wherein access to the DOM of the web page by the computer program code for the testing and analysis of the web page rendered in the web browser uses only the computer program code for providing web browsing capabilities and testing capabilities and the underlying API.18. A non-transitory computer readable medium as recited in claim 16, wherein the at least one user input command is a mouse related command.
20. A non-transitory computer readable medium as recited in claim 10, wherein the examination of the name and the value of a property found in the DOM at the DOM index value repeats until the name and the value match the DOM property name and the DOM property value, respectively.
21. A non-transitory computer readable medium as recited in claim 20, wherein the least one command includes a maximum time value, and wherein the examination of the name and the value of a property found in the DOM at the DOM index value no longer repeats once the maximum time value is exceeded.22. A non-transitory computer readable medium as recited in claim 20, wherein the examination of the name and the value of a property found in the DOM at the DOM index value repeats until the name and the value fail to match the DOM property name and the DOM property value, respectively.
23. A non-transitory computer readable medium as recited in claim 22, wherein the least one command includes a maximum time value, and wherein the examination of the name and the value of a property found in the DOM at the DOM index value no longer repeats once the maximum time value is exceeded.
24. A non-transitory computer readable medium including at least computer program code operational on a computer for providing a web browser, said computer readable medium comprising: computer program code for providing web browsing capabilities and testing capabilities for a website being hosted by a server and accessible to the computer via a network, the website including at least one web page, wherein the computer program code for providing web browsing capabilities and testing capabilities, when performed, provides the web browser with Document Object Model (DOM) access capabilities, and wherein the computer program code for providing web browsing capabilities and testing capabilities includes at least: computer program code for testing and analysis of a web page as rendered by the web browser; and computer program code for accessing an attribute or property value of an element of a DOM of the web page, wherein the computer program code for accessing the attribute or property value of the element of the DOM of the web page accesses the DOM of the web page using a browser programming interface that enables the computer program code for providing web browsing capabilities and testing capabilities to have access to the DOM, the browser programming interface is supported by an API underlying the computer program code for providing web browsing capabilities and testing capabilities for providing a plurality of library function calls or methods that are accessible by the computer program code for providing web browsing capabilities and testing capabilities, wherein the computer program code for accessing the attribute or property value of the element of the DOM of the web page accesses the attribute or property value of the element of the DOM of the web page for purposes of the testing and analysis of the web page rendered in the web browser, and wherein the computer program code for providing web browsing capabilities and testing capabilities supports at least one command, provided to the web browser via the browser programming interface, to facilitate synchronized testing and analysis of asynchronous processes of the web page rendered by the web browser using the underlying API, and wherein the at least one command includes a DOM index value, a DOM property name and a DOM property value, and causes search of the DOM of the web page beginning at the DOM index value for a name and a value of a property found in the DOM at the DOM index value to determine whether the name and the value match the DOM property name and the DOM property value, respectively.
25. A non-transitory computer readable medium as recited in claim 24, wherein if no match is found at the DOM index value, the search continues by incrementing the DOM index value and then checking the name and the value of a property found in the DOM at the incremented DOM index value for match with the name and the value match the DOM property name and the DOM property value, respectively.
26. A computing device, comprising: a memory; web browser program code stored in the memory; and a processor configured to perform the web browser program code, wherein the web browser program code, when performed, provides a web browser operating on the computing device, wherein the web browser program code provides the web browser with Document Object Model (DOM) access capabilities, wherein the web browser program code, executable by the computing device, includes at least: computer program code for testing and analysis of a web page as rendered by the web browser; computer program code for accessing an attribute or property value of an element of a DOM of the web page, wherein the computer program code for accessing the attribute or property value of the element of the DOM of the web page accesses the DOM of the web page using a browser programming interface that enables the web browser program code to have access to the DOM, the browser programming interface is supported by an API underlying the web browser program code for providing a plurality of library function calls or methods that are accessible by the web browser program code, and wherein the computer program code for accessing the attribute or property value of the element of the DOM of the web page accesses the attribute or property value of the element of the DOM of the web page for purposes of the testing and analysis of the web page rendered in the web browser, wherein the web browser program code supports at least one command, provided to the web browser via the browser programming interface, to facilitate synchronized testing and analysis of asynchronous processes of the web page rendered by the web browser using the underlying API, and wherein the at least one command includes a DOM index value, a DOM property name and a DOM property value, and causes search of the DOM of the web page beginning at the DOM index value for a name and a value of a property found in the DOM at the DOM index value to determine whether the name and the value match the DOM property name and the DOM property value, respectively.
27. A computing device as recited in claim 26, wherein if no match is found at the DOM index value, the search continues by incrementing the DOM index value and then checking the name and the value of a property found in the DOM at the incremented DOM index value for match with the name and the value match the DOM property name and the DOM property value, respectively.28. A computing device as recited in claim 26, wherein the web browser program code, executable by the computing device, includes at least: computer program code for receiving an indication of a DOM modification to be performed, and wherein the computer program code for accessing the attribute or property value of the element of the DOM of the web page comprises computer program code for modifying the attribute or property value of the element of the DOM of the web page for purposes of the testing and analysis of the web page rendered in the web browser.
29. A computing device as recited in claim 28, wherein the DOM modification sets an attribute of the element of the DOM of the web page to a particular value.