# US 11,308,213 B2 · Dynamic generation of automation tags

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,308,213 B2
- Document ID: US11308213B2
- Status: Granted
- Kind: B2
- Application number: 16/887,639
- Filed: 2020-05-29
- Published: 2021-10-14
- Granted: 2022-04-19
- Earliest claimed: 2020-04-14
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Snigdhaman Chatterjee; Hemanth Rajeswari Anantha; Shivaprasad KC; Debashis Banerjee
- Web page: https://patentgrep.com/patent/US11308213B2

## CPC

- G06F 11/3684: {for test design, e.g. generating new test cases}
- G06F 21/566: {Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities}
- G05B 19/0426: {Programming the control sequence}
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 8/75: Structural analysis for program understanding
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- G06F 8/70: Software maintenance or management
- G06F 9/45512: {Command shells}
- G06F 11/3696: {Methods or tools to render software testable}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Systems and methods are provided for analyzing an HTML file to identify elements in the HTML file to which to add unique automation tags, and for each element identified, determining whether the element is a dynamic element. If the system determines that an element is a dynamic element, the system generates an observer for the dynamic element to detect a change to the dynamic element, and if the system detects a signal sent by the observer indicating that a change to the dynamic element has occurred, the system generates a unique automation tag for an element corresponding to the change to the dynamic element. If the system determines that the element is not a dynamic element, the system generates a unique automation tag for the element.

## Claims

### Claim 1

A computer-implemented method comprising:
analyzing, by one or more hardware processors, an HTML file to identify elements in the HTML file to which to add unique automation tags;
for each element identified, determining whether the element is a dynamic element;
based on determining that the element is a dynamic element, performing operations comprising:
generating an observer for the dynamic element to detect a change to the dynamic element;
detecting a signal sent by the observer indicating that a change to the dynamic element has occurred; and
generating a unique automation tag for an element corresponding to the change to the dynamic element; and
based on determining that the element is not a dynamic element, generating a unique automation tag for the element.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the dynamic element is identified by detecting an if condition or a for condition in the HTML file.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the observer is a mutation observer.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the dynamic element is identified during an initialization phase of the HTML file.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein the signal sent by the observer is detected during run-time of the HTML file.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein generating a unique automation tag for an element corresponding to the change to the dynamic element comprises:
determining that there is a child element corresponding to the dynamic element; and
generating the unique automation tag for the child element.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6, wherein the unique automation tag for the child element is generated based on a unique automation tag for the dynamic element.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, further comprising:
generating a test automation script using generated unique automation tags.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein after generating the unique automation tag for the element corresponding to the change to the dynamic element, the computer-implemented method further comprises:
adding the unique automation tag for the element to the HTML, file.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1, wherein after generating the unique automation tag for the element, the computer-implemented method further comprises:
adding the unique automation tag for the element to the HTML file.

### Claim 11

A system comprising:
a memory that stores instructions; and
one or more processors configured by the instructions to perform operations comprising:
analyzing an HTML, file to identify elements in the HTML, file to which to add unique automation tags;
for each element identified, determining whether the element is a dynamic element;
based on determining that the element is a dynamic element, performing operations comprising:
generating an observer for the dynamic element to detect a change to the dynamic element;
detecting a signal sent by the observer indicating that a change to the dynamic element has occurred; and
generating a unique automation tag for an element corresponding to the change to the dynamic element; and
based on determining that the element is not a dynamic element, generating a unique automation tag for the element.

### Claim 12 (depends on 11)

The system of claim 11, wherein the dynamic element is identified by detecting an if condition or a for condition in the HTML file.

### Claim 13 (depends on 11)

The system of claim 11, wherein the observer is a mutation observer.

### Claim 14 (depends on 11)

The system of claim 11, wherein the dynamic element is identified during an initialization phase of the HTML file.

### Claim 15 (depends on 11)

The system of claim 11, wherein the signal sent by the observer is detected during run-time of the HTML file.

### Claim 16 (depends on 11)

The system of claim 11, wherein generating a unique automation tag for an element corresponding to the change to the dynamic element comprises:
determining that there is a child element corresponding to the dynamic element; and
generating the unique automation tag for the child element.

### Claim 17 (depends on 16)

The system of claim 16, wherein the unique automation tag for the child element is generated based on a unique automation tag for the dynamic element.

### Claim 18 (depends on 11)

The system of claim 11, the operations further comprising:
generating a test automation script using generated unique automation tags.

### Claim 19 (depends on 11)

The system of claim 11, wherein after generating the unique automation tag for the element corresponding to the change to the dynamic element, or after generating the unique automation tag for the element, the operations further comprise:
adding the unique automation tag for the element to the HTML, file.

### Claim 20

A non-transitory computer-readable medium comprising instructions stored thereon that are executable by at least one processor to cause a computing device to perform operations comprising:
analyzing an HTML file to identify elements in the HTML file to which to add unique automation tags;
for each element identified, determining whether the element is a dynamic element;
based on determining that the element is a dynamic element, performing operations comprising:
generating an observer for the dynamic element to detect a change to the dynamic element;
detecting a signal sent by the observer indicating that a change to the dynamic element has occurred; and
generating a unique automation tag for an element corresponding to the change to the dynamic element; and
based on determining that the element is not a dynamic element, generating a unique automation tag for the element.
