IP Library Granted Patent US 11,200,369
Granted Patent B2
US 11,200,369 · App. 16/712,212 · Granted Dec 14, 2021

Web element path location in dynamic web pages

Inventors: Shubham Gupta (Jaipur, IN); Tirumala Rao Sangapu (Hyderabad, IN); Gyanendra Kumar Patro (Berhampur, IN)
Assignee: EMC IP Holding Company LLC
G06F40/154G06F16/80G06F16/9577G06F40/143
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 11,200,369
App. No.
16/712,212
Granted
Dec 14, 2021
Kind
B2
Abstract

An apparatus comprises at least one processing device configured to perform steps of receiving a request to determine a path to a given web element of a web page of a web application and parsing the web page to detect web elements of the web page including the given web element and one or more additional web elements. The at least one processing device is also configured to perform steps of identifying one or more of the additional web elements having designated characteristics and selecting one of the identified web elements based at least in part on locations of the identified web elements, relative to the given web element, in a tree structure of the web page. The at least one processing device is further configured to perform the step of determining the path to the given web element from the selected web element.

Claims (47)

1. An apparatus comprising

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured to perform steps of:

receiving a request to determine a path to a given web element of a web page of a web application, the given web element having a first likelihood of changing over time;

parsing the web page of the web application to detect a plurality of web elements of the web page, the plurality of web elements comprising the given web element and one or more additional web elements;

identifying one or more of the additional web elements having one or more designated characteristics, the one or more designated characteristics indicating that the identified web elements have a second likelihood of changing over time, the second likelihood being less than the first likelihood;

selecting one of the identified web elements having the one or more designated characteristics based at least in part on locations of the identified web elements, relative to the given web element, in a tree structure of the web page of the web application; and

determining a given path to the given web element from the selected web element that does not traverse a root node of the tree structure of the web page of the web application.

2. The apparatus of claim 1 wherein identifying one or more of the additional web elements having the one or more designated characteristics comprises identifying ones of the plurality of web elements comprising text fields of the web page of the web application.

3. The apparatus of claim 1 wherein the web page of the web application comprises a Hypertext Markup Language (HTML) page, and wherein identifying one or more of the additional web elements having the one or more designated characteristics comprises identifying ones of the additional web elements comprising at least one of a header HTML tag, a paragraph HTML tag, and a label HTML tag.

4. The apparatus of claim 1 wherein the path to the given web element comprises an Extensible Markup Language (XML) Path Language (XPath) path.

5. The apparatus of claim 1 wherein the tree structure of the web page of the web application comprises a Document Object Model (DOM) tree structure comprising nodes representing the plurality of web elements.

6. The apparatus of claim 5 wherein the given web element has an absolute path to the root node of the DOM tree structure that changes over time.

7. The apparatus of claim 5 wherein the given web element has at least one of a class and an identifier that changes over time.

8. The apparatus of claim 5 wherein identifying one or more of the additional web elements having the one or more designated characteristics comprises identifying two or more of the additional web elements having the one or more designated characteristics, and wherein selecting one of the identified web elements is based at least in part on respective numbers of steps for traversing the DOM tree structure to the given web element from each of the two or more additional web elements having the one or more designated characteristics.

9. The apparatus of claim 5 wherein identifying one or more of the plurality of web elements having the one or more designated characteristics comprises identifying two or more of the additional web elements having the one or more designated characteristics, and wherein selecting one of the identified web elements is based at least in part on whether respective ones of the two or more additional web elements having the one or more designated characteristics lie in a same branch of the DOM tree structure as the given web element.

10. The apparatus of claim 5 wherein selecting one of the identified web elements comprises:

determining whether at least a subset of the identified web elements lie in a same branch of the DOM tree structure as the given web element;

responsive to determining that at least a subset of the identified web elements lie in the same branch of the DOM tree structure as the given web element, selecting the identified web element in the subset that has a shortest traversal path to the given web element; and

responsive to determining that none of the identified web elements lie in the same branch of the DOM tree structure as the given web element, selecting the identified web element that has a shortest traversal path to the given web element.

11. The apparatus of claim 1 wherein the path to the given web element comprises a path defined using one or more Extensible Markup Language (XML) Path Language (XPath) axes and operators.

12. The apparatus of claim 11 wherein the given path to the given web element comprises a first portion specifying the selected web element and a second portion specifying a traversal path of the tree structure of the web page of the web application from the selected web element to the given web element.

13. The apparatus of claim 1 wherein identifying one or more of the plurality of web elements having the one or more designated characteristics comprises identifying one or more fields of the given web element as having the one or more designated characteristics.

14. The apparatus of claim 13 wherein determining the given path to the given web element comprises determining a path to the given web element from the one or more fields of the given web element having the one or more designated characteristics.

15. A method comprising steps of:

receiving a request to determine a path to a given web element of a web page of a web application, the given web element having a first likelihood of changing over time;

parsing the web page of the web application to detect a plurality of web elements of the web page, the plurality of web elements comprising the given web element and one or more additional web elements;

identifying one or more of the additional web elements having one or more designated characteristics, the one or more designated characteristics indicating that the identified web elements have a second likelihood of changing over time, the second likelihood being less than the first likelihood;

selecting one of the identified web elements having the one or more designated characteristics based at least in part on locations of the identified web elements, relative to the given web element, in a tree structure of the web page of the web application; and

determining a given path to the given web element from the selected web element that does not traverse a root node of the tree structure of the web page of the web application;

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

16. The method of claim 15 wherein the tree structure of the web page of the web application comprises a Document Object Model (DOM) tree structure comprising nodes representing the plurality of web elements, and wherein selecting one of the identified web elements comprises:

determining whether at least a subset of the identified web elements lie in a same branch of the DOM tree structure as the given web element;

responsive to determining that at least a subset of the identified web elements lie in the same branch of the DOM tree structure as the given web element, selecting the identified web element in the subset that has a shortest traversal path to the given web element; and

responsive to determining that none of the identified web elements lie in the same branch of the DOM tree structure as the given web element, selecting the identified web element that has a shortest traversal path to the given web element.

17. The method of claim 15 wherein the given path to the given web element comprises a path defined using one or more Extensible Markup Language (XML) Path Language (XPath) axes and operators, and wherein the given path to the given web element comprises a first portion specifying the selected web element and a second portion specifying a traversal path of the DOM tree structure from the selected web element to the given web element.

18. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device to perform steps of:

receiving a request to determine a path to a given web element of a web page of a web application, the given web element having a first likelihood of changing over time;

parsing the web page of the web application to detect a plurality of web elements of the web page, the plurality of web elements comprising the given web element and one or more additional web elements;

identifying one or more of the additional web elements having one or more designated characteristics, the one or more designated characteristics indicating that the identified web elements have a second likelihood of changing over time, the second likelihood being less than the first likelihood;

selecting one of the identified web elements having the one or more designated characteristics based at least in part on locations of the identified web elements, relative to the given web element, in a tree structure of the web page of the web application; and

determining a given path to the given web element from the selected web element that does not traverse a root node of the tree structure of the web page of the web application.

19. The computer program product of claim 18 wherein the tree structure of the web page of the web application comprises a Document Object Model (DOM) tree structure comprising nodes representing the plurality of web elements, and wherein selecting one of the identified web elements comprises:

determining whether at least a subset of the identified web elements lie in a same branch of the DOM tree structure as the given web element;

responsive to determining that at least a subset of the identified web elements lie in the same branch of the DOM tree structure as the given web element, selecting the identified web element in the subset that has a shortest traversal path to the given web element; and

responsive to determining that none of the identified web elements lie in the same branch of the DOM tree structure as the given web element, selecting the identified web element that has a shortest traversal path to the given web element.

20. The computer program product of claim 18 wherein the given path to the given web element comprises a path defined using one or more Extensible Markup Language (XML) Path Language (XPath) axes and operators, and wherein the given path to the given web element comprises a first portion specifying the selected web element and a second portion specifying a traversal path of the DOM tree structure from the selected web element to the given web element.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2019
From: GUPTA, SHUBHAM; SANGAPU, TIRUMALA RAO; PATRO, GYANENDRA KUMAR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051267/0054 →
Continuity (1)
Related Publication 20210182470A1 · Jun 17, 2021