IP Library Granted Patent US 10,489,286
Granted Patent B2
US 10,489,286 · App. 14/657,955 · Granted Nov 26, 2019

Driving a web browser for testing web pages using a document object model

Inventor: Edward F. Miller (San Francisco, CA)
Assignee: Software Research, Inc.
G06F11/3696G06F11/3668G06F11/3688G06F16/958G06F17/2247H04L67/42
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,489,286
App. No.
14/657,955
Granted
Nov 26, 2019
Kind
B2
Abstract

Methods and systems to test web browser enabled applications are disclosed. In one embodiment, a browser application can allow a user to perform test and analysis processes on a candidate web browser enabled application. The test enabled browser can use special functions and facilities that are built into the test enabled browser. One implementation of the invention pertains to functional testing, and another implementation of the invention pertains to pertains to site analysis.

Claims (83)

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.

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.

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.

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.

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.

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.

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.

Continuity (5)
Continuation 13922579 · Jun 20, 2013
Continuation 13764628 · Feb 11, 2013
Continuation 12247753 · Oct 8, 2008
Provisional Application 60980068 · Oct 15, 2007
Related Publication 20150186249A1 · Jul 2, 2015
Cited By (3)
US 12,236,191 US 12,277,190 US 12,282,801