CN107533544B - 元素标识符生成 - Google Patents
元素标识符生成 Download PDFInfo
- Publication number
- CN107533544B CN107533544B CN201580076374.4A CN201580076374A CN107533544B CN 107533544 B CN107533544 B CN 107533544B CN 201580076374 A CN201580076374 A CN 201580076374A CN 107533544 B CN107533544 B CN 107533544B
- Authority
- CN
- China
- Prior art keywords
- engine
- elements
- operations
- target
- copy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/313—Selection or weighting of terms for indexing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本文公开的示例实施方式涉及用于生成元素标识符的系统,该系统包括用于接收与结构化文档的元素相关联的操作并且测量与所接收的操作相关联的度量的操作引擎。所述系统还可以包括元素引擎,以确定所述元素是否包括目标元素,并且响应于确定所述元素包括所述目标元素,根据所述元素的修改后的属性生成唯一标识符。所述系统还可以包括日志引擎,以创建包括所述唯一标识符和与所述接收到的操作相关联的所述度量的日志记录。
Description
背景技术
一些基于web或移动的应用提供了许多与用户交互的方式。例如,用户可以在网页上选择各种元素,例如,搜索框、列表项、链接、图像等。在一些情况下,应用的创建者希望响应于用户操作来测量应用的性能,例如通过确定完成给定的操作花费多长时间来测量应用的性能。应用中的多个元素可以表示功能上相似但视觉上不同的元素,例如搜索结果列表中的每个项目或菜单中的每个项目。关于此类类似元素的操作性能可能希望作为一个组来跟踪,而不是单独进行,以简化性能分析。
附图说明
在附图中,相同的附图标记表示相同的部件或块。以下的详细描述参考附图,其中:
图1是与所公开的实施方式一致的用于元素标识符生成的系统的实施方式的框图;
图2是与所公开的实施方式一致的示例性元素标识符生成设备的框图;
图3是与所公开的实施方式一致的示例性计算设备的框图;
图4是与所公开的实施方式一致的应用的实施方式的示例;
图5是与所公开的实施方式一致的用于web应用的示例文档对象模型结构;
图6是与所公开的实施方式一致的用于测量和记录度量的方法的实施方式的流程图;以及
图7是与所公开的实施方式一致的用于元素标识符生成的方法的实施方式的流程图。
具体实施方式
如上所述,用于web应用的典型界面包括许多元素,例如图像、链接、菜单、文本描述等。这些元素可以与应用响应于诸如加载页面、脚本执行和/或用户操作之类的事件所执行的命令相关联。因此,如下文详细描述的,各种示例实施方式涉及为各种元素生成标识符、评估与在这些元素上执行的命令相关联的度量以及记录用于性能检查和分析的度量。
在以下的描述中,引用了术语“机器可读存储介质”。如本文所使用的,术语“机器可读存储介质”是指存储可执行指令或其他数据的任何电子、磁、光或其它物理存储设备(例如,硬盘驱动器、随机存取存储器、闪速存储器等等)。
现在参考附图,图1是与所公开的实施方式一致的用于元素标识符生成的系统100的实施方式的框图。系统100可以包括例如应用服务器110和客户端140。应用服务器110和客户端140可以通过直接连接和/或网络彼此通信。网络可以是促进远程组件之间的通信的任何类型的网络。例如,网络可以包括局域网(LAN)、广域网(WAN)、虚拟专用网、专用内联网、因特网、蜂窝网络、无线电网络和/或无线网络。
应用服务器110和客户端140可以各自包括通用和/或专用计算机、服务器、大型机、台式机、笔记本电脑、平板电脑、智能电话、游戏控制台和/或能够提供与本文中描述的实施方式一致的计算能力的任何其它系统。
虽然在图1中描绘了一个应用服务器110和一个客户端140,但是系统100的某些实施方式可以包括多于一个应用服务器110和/或客户端140。至少一个服务器可以被使用并被布置在例如至少一个服务器库、计算机库、数据中心和/或其他装置中。例如,服务器计算机一起可以包括云计算资源、网格计算资源和/或任何其他分布式计算装置。这样的服务器计算机可以位于单个安装中和/或可以分布在许多不同的地理位置。
客户端140可以包括显示设备,例如阴极射线管(CRT)监视器、液晶显示器(LCD)屏幕或使用另一种显示技术实现的屏幕。然而,可以使用任何合适的显示器。取决于系统100的配置,显示设备可以在客户端140的内部或外部。
在一些实施方式中,系统100可以监视在应用服务器110上执行的多个应用115的用户体验,并且提供对用户通过客户端140采取的操作的性能和稳定性测量。
应用115中的用户操作可以被转换成可以通过诸如ASP、Java、Objective C(面向对象的C)和各种其他编程语言的代码和/或脚本来操纵的事件。每当用户在用户客户端上发起操作(例如触摸、滑动),可以触发一系列事件(例如,触摸开始、点击、触摸结束),使得应用115可以处理该操作。
系统100可以识别、分类和度量用户操作。分类用户操作可以包括为操作生成标识符(Id)。用户操作可以通过用户使用的手势(例如,敲击、滑动等)和受手势影响的应用的元素(例如按钮、列表项等)来分类。可以对用户操作进行分类,以测量和/或显示其上的性能度量(例如“完成操作所花费的平均时间”)。
当尝试对用户操作进行分类时,系统100可以为手势分类实际目标元素,而不是与所接收的用户操作的动作处理器相关联的元素。应用115的每个元素可以与用于由用户操作触发的各种事件(例如触摸开始、点击、触摸结束等)的多个事件处理器相关联。一些事件处理器可以包括当触发它们各自的事件以便执行应用115的功能时由这些事件监听器调用的动作处理器。
例如,如果用户在应用115中的不同选项的菜单上敲击,则系统100可以将每个选项分类为不同的用户操作。在一些实施方式中,系统100可以将多个元素(例如,应用115所显示的目录项目列表)分类为一个通用元素。系统100可以分析和处理元素的文档对象模型(DOM)结构,以生成Id和名称,该Id和名称对于具有不同功能的元素是唯一的,而对于具有相同功能的元素是相同的,即使它们可能作为不同的元素呈现给用户。
图2是与所公开的实施方式相一致的示例性元素标识符生成设备200的框图,设备200包括处理器210和非暂时性机器可读存储介质220。元素标识符生成设备200可以包括计算设备,例如台式计算机、笔记本电脑、手持式计算设备、移动电话等。处理器210可以是中央处理单元(CPU)、基于半导体的微处理器、或适用于检索和执行存储在机器可读存储介质220中的指令的任何其他硬件设备。特别地,处理器210可以获取、解码和执行多个检测操作指令230、识别元素识别指令232、创建修改副本指令234、生成唯一标识符指令236、测量度量指令238以及创建日志指令240来实现以下详细描述的功能。
诸如检测操作指令230、识别元素识别指令232、创建修改副本指令234、生成唯一标识符指令236、测量度量指令238和创建日志指令240等可执行指令可以被存储在机器可读存储介质220的任何部分和/或组件中。机器可读存储介质220可以包括易失性和/或非易失性存储器和数据存储组件。易失性组件是在电源中断时不保留数据值的组件。非易失性组件是在电源中断时保留数据的组件。
机器可读存储介质220可以包括例如随机存取存储器(RAM)、只读存储器(ROM)、硬盘驱动器、固态驱动器、USB闪存驱动器、通过存储卡读卡器访问的存储卡、通过相关的软盘驱动器访问的软盘、通过光盘驱动器访问的光盘、通过适当的磁带驱动器访问的磁带和/或其他存储器组件,和/或这些存储器组件中的任何两个和/或更多个的组合。另外,RAM可以包括例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)和/或磁随机存取存储器(MRAM)以及其他类似的设备。ROM可以包括例如可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和/或其他类似的存储器设备。
机器可读存储介质220可以用可执行指令进行编码,该可执行指令包括例如元素标识符生成设备200的操作系统(OS)的至少一部分、或在OS上运行以呈现用户界面的单独应用。作为另一示例,该可执行指令可以被包括在web浏览器中,使得该web浏览器实现本文中详细描述的界面。在一些实施方式中,该可执行指令可以在由web浏览器解释的基于web的脚本(例如JavaScript)中实现。可以使用可执行指令的其他合适格式。
更具体地,机器可读存储介质220可以用检测操作指令230进行编码,以检测和接收与结构化文档相关联的操作。例如,包括基于DOM的结构化web文档的应用115可以在客户端140上显示。客户端140的用户可以敲击应用115的元素,导致应用115触发该元素上的操作处理器。检测操作指令230可将代码注入操作处理器,该操作处理器可响应于用户对元素的敲击而被执行。
例如,与结构化文档相关联的web应用可以包括JavaScript内置函数“addEventListener”。在加载应用期间,这个内置函数可以被重写,以具有保存触发用于进一步处理的操作的元素作为目标元素的功能。
机器可读存储介质220可以用元素识别指令232进行编码,以识别与检测到的操作相关联的结构化文档的元素。元素识别指令232可以包括用于识别与该操作相关联的所选元素并确定所选元素是否包括目标元素的指令。
在一些实施方式中,由用户选择的元素可以不包括先前使用“addEventListener”注册的目标元素,但是可以包括其子元素之一。例如,操作处理器可以被注册到包含文本和图像的表行。用户选择的元素可以包括文本元素和/或图像元素,而表行包括目标元素。
所选择的元素是否包括目标元素的确定,可以允许设备200识别应用开发者感兴趣的元素,即使用户的操作位于不同的和/或相关元素上。例如,识别元素指令232可以确定所选择的元素是否包括样式元素、所选择的元素是否包括具有多个子元素的父元素,和/或确定所选元素占据的显示空间量是否超过阈值。
在一些实施方式中,某些元素类型(例如样式元素)可以导致识别元素指令232在所述某些元素类型被选择时寻找目标元素。用户选择样式元素可能导致样式元素的父元素和/或子元素代替地被识别为目标元素。
在一些实施方式中,子元素可以由用户选择,而父元素可以包括目标元素。然后,在相同的父html元素(例如表行)中的这些不同子元素上的敲击,可以为目标元素在同一Id下被分类。
在一些实施方式中,如果所选择的元素不具有重写事件监听器,识别元素指令232可以扫描文档结构以找到父元素。如果到达文档根,或者如果所选元素的父元素占用了大于阈值的显示空间(例如,大于屏幕的70%),则所选择的元素可以被指定为目标元素。否则,父元素可以被指定为目标元素。
机器可读存储介质220可以用创建修改副本指令234进行编码,以创建所识别元素的修改副本。例如,可以在操作处理器中使用JavaScript来创建与目标元素相关联的“this”结构的副本。可以操纵元素结构的副本而不影响应用的其他功能。
机器可读存储介质220可以用生成唯一标识符指令236进行编码,以生成与所识别元素的修改副本相关联的唯一标识符。例如,生成唯一标识符指令236可以创建与所识别的元素相关联的数据结构的副本,将修改规则应用于数据结构的副本,为所标识的元素生成名称,并将数据结构的副本转换为哈希码。在一些实施方式中,应用于数据结构的修改规则可以从数据结构的副本中删除属性。
唯一标识符的生成可能会创建元素的修改后的基于DOM的结构,并将其转换为表示Id的字符串。如果应用的若干元素包含不同的内容,但包含相同的DOM结构和基本的统一资源定位符(URL),则应用于这些元素中的每个元素的修改规则可能导致相同的Id,这允许它们的度量和性能被聚合。
在一些实施方式中,Id的生成可以通过迭代包括该元素的多个节点来应用若干修改规则。例如,修改规则可以从元素中删除文本节点和/或从诸如“style(样式)”、“alt(替换)”和/或“src(源)”属性的节点中删除某些属性。在一些实施方式中,可以例如通过从URL删除参数和/或删除数值来修改属性。
在一些实施方式中,可以对应用使用诸如上述的修改规则的标准集合。在一些实施方式中,应用的管理员和/或开发人员可以添加、修改和/或删除修改规则以适应其应用。例如,考虑到特定应用的编码风格,应用开发人员可以提供要应用于元素的节点的正则表达式(regex)。
生成唯一标识符指令236可以从所得到的修改后的元素结构创建哈希码。哈希码创建将字符串转换为整数。例如,JavaScript可以使用“hashCode”函数,该函数将字符串作为输入变量,并根据字符串中字符的字符代码值返回一个整数值。下面在表1中列出了这样一个hashCode函数的示例。许多其他散列函数可用,如C中的djb2和md5算法。
表1:hashCode函数
机器可读存储介质220可以用测量度量指令238进行编码,以测量与该操作相关联的度量。例如,与操作相关联的度量可以包括完成操作所需的时间量和/或执行操作而消耗的资源量(例如,内存、存储器、处理能力等)。
机器可读存储介质220可以用创建日志指令240进行编码,以创建包括唯一标识符和与该操作相关联的测量度量的日志记录。例如,可以将日志记录提交到日志数据库以与其他测量度量进行聚合。应用的性能分析报告随后可以由应用开发人员生成和评审。
图3是与所公开的实施方式一致的示例设备300的框图。如图所示,计算设备300可以包括操作引擎330、元素引擎340和日志引擎350。操作引擎300、元素引擎340和日志引擎350可以各自包括例如存储在机器可读介质中的可由处理器、逻辑电路和/或硬件和/或软件的其他实施方式执行的指令。
操作引擎330可以接收与结构化文档的元素相关联的操作。例如,操作引擎330可以包括应用中的操作处理器。当用户对应用执行操作(例如单击元素)时,可以调用诸如“mouseDown”之类的操作处理器来处理该操作。
操作引擎330还可以测量与操作相关联的性能度量,例如传送的数据量,完成操作所需的时间量和/或执行操作所消耗的资源量。
在一些实施方式中,元素引擎340可以确定与操作相关联的元素是否包括目标元素,并且响应于确定所述元素包括目标元素,根据元素的修改后属性生成唯一标识符。响应于确定所述元素不包括目标元素,元素引擎340可以将第二元素标识为目标元素。
确定与操作相关联的元素是否包括目标元素可以允许元素引擎340识别应用开发者感兴趣的元素,即使用户的操作位于不同的和/或相关元素上。例如,类似于元素识别指令232,元素引擎340可以确定所选择的元素是否包括样式元素、所选择的元素是否包括具有多个子元素的父元素,和/或确定由所选择的元素占用的显示空间量是否超过阈值。
元素引擎340可以修改目标元素的部分。例如,目标元素可以包括包含多个节点的基于DOM的数据结构。每个节点可以包括多个属性。元素引擎340可以应用修改规则,例如上面关于标识符生成指令236描述的修改规则。在一些实施方式中,修改规则可以从该属性中删除字符类型和/或从数据结构中删除属性,例如style、alt、link(链接)或源属性。
在一些实施方式中,用于元素的标识符(Id)可以由元素引擎340产生。例如,元素引擎340可以在应用修改规则之后在基于DOM的数据结构中创建结果文本的哈希码。
在一些实施方式中,元素引擎340可以根据标签、标题、alt和/或名称属性来为元素生成名称。例如,HTML表单元素可能具有与表单的输入相关联的标签属性。该标签可以用作元素的名称。另一个例子,许多html元素,例如“input”、“a”、“form”、“button”、“iframe”等支持名称和/或id属性,可以用作元素的名称。类似地,“alt”或“title”属性的值也可以用作支持它的那些元素的元素名称。
在一些实施方式中,可以基于元素的类型来生成元素的名称。例如,对于“HTML”元素,可以使用文档标题属性作为元素名称。对于选择元素,可以使用所选择的选项文本作为元素名称。
日志引擎350可以创建包括唯一标识符和与接收到的操作相关联的度量的日志记录。日志引擎350可以进一步创建日志记录,该日志记录进一步包括由元素引擎340生成的元素的名称。
在一些实施方式中,操作引擎330、元素引擎340和日志引擎350可以通过使用应用编程接口(API)来彼此交互和/或与其他应用交互。特别地,应用的API(无论是本地执行的还是基于Web的)可以向其他应用公开一些函数。类似地,操作系统的API可以公开一些用于控制OS的功能的函数。
图4是与所公开的实施方式一致的应用400的实施方式的示例。应用400可以包括列表显示区域420、多个列表项图像430(A)-(D)和多个列表项描述440(A)-(D)。例如,图像430(A)-(D)及其各自的描述440(A)-(D)可以包括来自用户在搜索框中输入的搜索的结果。
图像430(A)-(D)和描述440(A)-(D)可以包括结构化文档的元素。在一些实施方式中,应用接收的操作可以包括这些元素之一的选择,例如图像430(A)。目标元素可以包括父元素,例如表行,该父元素包括作为子元素的图像430(A)和描述440(A)。
图5是与公开的实施方式一致的用于web应用的示例文档对象模型(DOM)结构500。DOM结构500可以包括多个结构化元素,每个结构化元素包括多个节点。DOM结构500被呈现作为示例之用;为了清楚和易于解释,生产应用中使用的一些元素可以被省略。
第一元素510可以标识文档的类型;在这个例子中,为HTML文档。第二元素520可以包括诸如标题节点和脚本链接节点之类的信息节点。第三元素530可以包括与为应用提供搜索输入相关联的多个节点。
父元素535可以包括多个子元素540(A)-(B)。例如,父元素535可以对应于列表显示区域420,并且子元素540(A)-(B)可以对应于列表项图像430(A)-(B)和列表项描述440(A)-(B)。
图6是与所公开的实施方式一致的用于测量和记录度量的方法的实施方式的流程图。虽然以下参照系统100的组件来描述方法600的执行,但是用于执行方法600的其他适当组件对于本领域技术人员将是显而易见的。方法600可以以存储在机器可读存储介质(诸如设备200的机器可读存储介质220)上的可执行指令的形式来实现。
方法600可以在框610中开始,并且进行到框620,在框620处,系统100可以接收对元素的操作。例如,响应于客户端140的用户点击列表项图像430(A),可以调用检测操作指令230的操作处理器和/或与子元素540(A)相关联的操作引擎330。操作处理器可以与事件监听器(例如“touchStart”和/或“mouseDown”)相关联。
方法600然后可以前进到步骤630,在步骤630,系统100可以确定与操作相关联的元素是否包括目标元素。目标元素可以包括应用的功能元素,其中开发者对测量性能感兴趣。在一些实施方式中,目标元素可以被识别为使用应用的功能重写其默认操作处理器的那些元素。确定所选择的元素是否包括目标元素可以允许系统100使用识别元素指令232和/或元素引擎340识别应用开发者感兴趣的元素,即使用户的操作位于不同的和/或相关的元素。
例如,当从包括图像和描述的表行上的操作处理器调用应用功能时,客户端140的用户可以点击列表中的图像。系统100可以通过确定图像元素和描述元素均为表行元素的子元素来识别图像与描述之间的相关性。
如果在步骤630处所选择的元素被确定为不包括目标元素,则方法600可前进到步骤640,在步骤640处,系统100可以识别目标元素。在上述示例中,识别元素指令232和/或元素引擎340可以将表行元素识别为目标元素,即使图像是所选择的元素。
一旦目标元素在步骤630和/或步骤640处被识别,则方法600可以前进到步骤650,在步骤650处,系统100可以生成目标元素的标识符(Id)。例如,应用服务器110可以使用创建修改副本指令234和/或元素引擎340来创建元素的数据结构的副本,并将修改规则应用于所复制的结构以生成标识符。Id生成在下面关于图7更详细地描述。
然后,方法600可以前进到步骤660,在步骤660处,系统100可以创建日志记录。例如,应用服务器110可以使用测量度量指令238和/或操作引擎330来测量与操作相关联的度量,例如完成操作花费的时间量。然后,应用服务器110可以创建包括目标元素的名称、生成的标识符和测量度量的日志记录,并将其提交到日志数据库。方法600然后可以在框670处结束。
图7是与所公开的实施方式一致的用于生成元素标识符的方法的实施方式的流程图。虽然以下参照系统100的组件来描述方法700的执行,但是用于执行方法600的其他适当组件对于本领域技术人员将是显而易见的。方法700可以以存储在机器可读存储介质(诸如设备200的机器可读存储介质220)上的可执行指令的形式来实现。
方法700可以在框705中开始并且进行到框710,在框710处,系统100可以创建元素的数据结构的副本。使用创建修改副本指令234和/或元素引擎340,应用115可以创建包括与目标元素相同的数据的新元素数据结构。例如,目标元素可以包括DOM结构500的子元素540(A)。应用115可以创建用于操纵的子元素540(A)的副本,而不影响原始数据结构。因此,子元素540(A)的副本可以包括以下节点:
<li id=“categoryProductItem_710406042_1016948”class=“brand2productCatItem”>
<div id=“categoryProductItemImageContainer_710406042_10948”class=“brand2facetedSearchImgDiv imgDiv”>
<a href=“/browse/product.do?cid=1016948”>
<img id=“cimg_710406_710406042_1016948_2”class=“gridProdImg”alt=“Black Shirt”src=http://a.b.c/abc/710406/quick/br7106-04qlv01.jpg name=“cimg_710406_710406042_1016948_0_2”>
</a>
</div>
<a class=“productItemName”href=“/browse/product.do?cid=1016948”>Black Shirt</a>
</li>
然后,方法700可以前进到步骤720,在步骤720处,系统100可以从元素的属性删除字符类型。例如,应用115可以通过创建修改副本指令234和/或元素引擎340将修改规则应用于迭代元素的每个节点的元素的副本,并且删除字符类型,例如下划线和/或来自每个属性结尾的字符串的数字。对于节点“<li id=“categoryProductItem_710406042_1016948”class=“brand2productCatItem”>”,这导致该节点被修改为“<li id=“categoryProductItem”class=“brand2 productCatItem”>”。
另一个例子,修改规则可以从属性中删除文本。在节点“<a class=“productItemName”href=“/browse/product.do?cid=1016948”>Black Shirt</a>”这导致节点被修改为“<a class=“productItemName”href=“/browse/product.do?cid=1016948”></a>”。
另一个例子,修改规则可以从URL属性中删除参数。对于节点“<a href=“/browse/product.do?cid=1016948”>”,这导致该节点被修改为“<a href=“/browse/product.do”>”。
一旦这些修改规则中的每一个已被应用,子元素540(A)的副本可以包括以下节点:
<li id=“categoryProductItem”class=“brand2productCatItem”>
<div id=“categoryProductItemImageContainer”class=“brand2facetedSearchImgDiv imgDiv“>
<a href=“/browse/product.do">
<img id=“cimg”class=“gridProdImg”alt=“Black Shirt”src=“http://a.b.c/abc/710406/quick/br7106-04qlv01.jpg”name=“cimg”>
</a>
</div>
<a class="productItemName"href="/browse/product.do"></a>
</li>
然后,方法700可以前进到步骤730,在步骤730处,系统100可以从元素部分或全部地删除属性。例如,通过创建修改副本指令234和/或元素引擎340应用的修改规则可以完全删除“alt”属性,并删除“src”属性的值部分。对于修改后的节点<img id=“cimg”class=“gridProdImg”alt=“Black Shirt”src=http://a.b.c/abc/710406/quick/br7106-04qlv01.jpg name=“cimg”>”,这导致该节点被修改为“<img id=“cimg”class=“gridProdImg”src=“”name=“cimg”>”。一旦这些修改规则中的每一个已被应用,子元素540(A)的副本可以包括以下节点:
<li id=“categoryProductItem”class=“brand2productCatItem”>
<div id=“categoryProductItemImageContainer”class=“brand2facetedSearchImgDiv imgDiv”>
<a href="/browse/product.do">
<img id=“cimg”class=“gridProdImg”src=“”name=“cimg”>
</a>
</div>
<a class="productItemName"href="/browse/product.do"></a>
</li>
在一些实施方式中,将上述修改规则应用于子元素540(B)可以导致修改的数据结构包括与上述关于子元素540(A)列出的节点相同的节点。
然后,方法700可以前进到步骤740,在步骤740处,系统100可以生成元素的名称。例如,元素引擎340可以根据标签、标题、alt、类和/或名称属性来生成元素的名称。在一些实施方式中,可以基于元素的类型来生成元素的名称。对于子元素540(A),例如,可以将第一节点的“类”属性用作元素的名称—“brand2 productCatItem”。
然后,方法700可以前进到步骤750,在步骤750处,系统100可以从元素的哈希码创建标识符。例如,生成唯一标识符指令236和/或元素引擎340可以包括javascript哈希码函数的实现。对上述修改的数据结构进行操作的功能可能导致值-211083241。方法700然后可以在步骤760处结束。
尽管以上被描述为包括单独的框,但是应当显而易见的是,特定界面区域的显示不需要按顺序发生。相反,在一些实施方式中,界面区域可以被处理以同时显示,使得特定界面区域的一些部分在另一界面区域的部分之前被输出到显示设备。
所公开的示例可以包括系统、设备、计算机可读存储介质和用于渐进缓冲器生成的方法。为便于说明,参照图1、图2和图3所示的组件来描述某些示例。然而,所示组件的功能可能重叠,并且可以存在于更少或更多数量的元件和组件中。此外,所示元件的全部或部分功能可以共存或分布在若干地理分散的位置之间。此外,所公开的示例可以在各种环境中实现,并且不限于所示示例。
此外,如在说明书和所附权利要求中所使用的,单数形式“一”,“一个”和“该”也包括复数形式,除非上下文另有指示。另外,尽管术语第一,第二等可以用于描述各种元件,但这些元件不应该受该术语的限制。相反,这些术语仅用于将一个元件与另一个元件区分开来。
此外,结合图1至图8描述的操作顺序是实例,而不旨在是限制性的。可以使用额外的或更少的操作或操作的组合,或者可以在不脱离所公开的示例的范围的情况下变化。因此,本公开仅提出了实施方式的可能示例,并且可以对所描述的示例进行许多变化和修改。所有这些修改和变化旨在被包括在本公开的范围内并由所附权利要求保护。
根据上述详细描述的实现方式,公开了用于生成元素标识符和记录应用的测量度量的系统和方法。
Claims (14)
1.一种用于元素标识符生成的系统,包括:
操作引擎,用于接收与应用的结构化文档的元素相关联的操作,并且测量与所接收的操作相关联的度量;
元素引擎,用于确定所述元素是否包括目标元素,并且响应于确定所述元素包括所述目标元素,根据修改规则修改所述元素的多个属性,并且根据所述元素的修改后的属性创建哈希码来生成唯一标识符;以及
日志引擎,用于创建包括所述唯一标识符和与所接收到的操作相关联的所述度量的日志记录。
2.根据权利要求1所述的系统,其中:
所述元素引擎生成所述元素的名称,其中所述日志记录进一步包括所生成的名称。
3.根据权利要求1所述的系统,其中所述修改规则包括从所述属性中删除字符类型。
4.根据权利要求1所述的系统,其中所述修改规则包括删除所述元素的第二属性。
5.根据权利要求4所述的系统,其中所述第二属性包括以下中的至少之一:样式属性、alt属性、链接属性和源属性。
6.根据权利要求1所述的系统,其中所述元素引擎响应于确定所述元素不包括所述目标元素,将第二元素标识为所述目标元素,所述第二元素包括信息节点,并且所述信息节点为标题节点或脚本链接节点。
7.一种非暂时性机器可读存储介质,包括用于元素标识符生成的指令,所述指令在由处理器执行时使所述处理器:
检测与结构化文档相关联的操作;
识别与所述操作相关联的所述结构化文档的元素;
创建所识别的元素的修改副本;
生成与所识别的元素的所述修改副本相关联的唯一标识符,包括:
创建与所识别的元素相关联的数据结构的副本,
对所述数据结构的副本应用修改规则,
将所述数据结构的副本转换为哈希码,
从所述哈希码生成所述唯一标识符;
测量与所述操作相关联的度量;以及
创建包括所述唯一标识符和所测量的与所述操作相关联的度量的日志记录。
8.根据权利要求7所述的非暂时性机器可读存储介质,其中所测量的与所述操作相关联的度量包括完成所述操作所花费的时间量。
9.根据权利要求7所述的非暂时性机器可读存储介质,其中用于识别与所述操作相关联的所述结构化文档的所述元素的指令包括用于进行下列操作的指令:
识别与所述操作相关联的所选元素;以及
确定所选元素是否包括目标元素。
10.根据权利要求9所述的非暂时性机器可读存储介质,其中用于确定所选元素是否包括目标元素的指令包括进行下列操作的指令:
确定所选元素是否包括样式元素;
确定所选元素是否包括多个子元素;并且
确定所选元素占据的显示空间量是否超过阈值。
11.根据权利要求7所述的非暂时性机器可读存储介质,其中用于生成与所识别的元素的修改副本相关联的唯一标识符的指令进一步包括进行下列操作的指令:
生成所识别的元素的名称。
12.根据权利要求11所述的非暂时性机器可读存储介质,其中所述修改规则包括从所述数据结构的副本中删除至少一个属性。
13.一种用于元素标识符生成的计算机实现的方法,包括:
由操作引擎重写与应用的结构化文档的多个元素相关联的操作处理器;
由所述操作引擎通过所述操作处理器接收与所述多个元素中的元素相关联的操作;
由元素引擎识别所接收的操作的目标元素;
由所述元素引擎创建所述目标元素的数据结构的副本;
由所述元素引擎根据修改规则修改所复制的数据结构的多个属性;
由所述元素引擎生成所述目标元素的名称;
由所述元素引擎根据所复制的数据结构的修改后的多个属性的哈希码,为所述目标元素生成唯一标识符;
由所述操作引擎测量为完成所接收到的对所述目标元素的操作所需的时间量;
由日志引擎创建日志记录,所述日志记录包括所生成的名称、所述唯一标识符、以及所测量的为完成所接收到的对所述目标元素的操作所需的时间量。
14.根据权利要求13所述的计算机实现的方法,其中所述修改规则包括以下中的至少之一:从所述多个属性删除属性、从所述多个属性中的属性删除字符类型、以及从所述多个属性中的属性删除字段值字符串。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2015/017185 WO2016137435A1 (en) | 2015-02-24 | 2015-02-24 | Element identifier generation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107533544A CN107533544A (zh) | 2018-01-02 |
CN107533544B true CN107533544B (zh) | 2021-01-08 |
Family
ID=56789076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580076374.4A Active CN107533544B (zh) | 2015-02-24 | 2015-02-24 | 元素标识符生成 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10289613B2 (zh) |
EP (1) | EP3262531A1 (zh) |
JP (1) | JP6505849B2 (zh) |
CN (1) | CN107533544B (zh) |
WO (1) | WO2016137435A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10042879B1 (en) * | 2017-11-13 | 2018-08-07 | Lendingclub Corporation | Techniques for dynamically enriching and propagating a correlation context |
CN112236780A (zh) * | 2018-08-03 | 2021-01-15 | 惠普发展公司,有限责任合伙企业 | 消耗品特性标识 |
US11290541B2 (en) | 2019-03-19 | 2022-03-29 | International Business Machines Corporation | Synchronous client-side log service |
US11157680B1 (en) * | 2021-02-23 | 2021-10-26 | Adobe Inc. | Systems for suggesting content components |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103460174A (zh) * | 2011-03-31 | 2013-12-18 | 惠普发展公司,有限责任合伙企业 | 增加用户界面元素 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7523191B1 (en) * | 2000-06-02 | 2009-04-21 | Yahoo! Inc. | System and method for monitoring user interaction with web pages |
US20020184363A1 (en) * | 2001-04-20 | 2002-12-05 | Steven Viavant | Techniques for server-controlled measurement of client-side performance |
US7330887B1 (en) * | 2003-01-06 | 2008-02-12 | Cisco Technology, Inc. | Method and system for testing web-based applications |
US7441195B2 (en) | 2003-03-04 | 2008-10-21 | Omniture, Inc. | Associating website clicks with links on a web page |
US8079037B2 (en) * | 2005-10-11 | 2011-12-13 | Knoa Software, Inc. | Generic, multi-instance method and GUI detection system for tracking and monitoring computer applications |
US8504913B2 (en) | 2007-06-08 | 2013-08-06 | Apple Inc. | Client-side components |
JP5063258B2 (ja) * | 2007-08-23 | 2012-10-31 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 操作ログを記録するためのシステム、方法およびコンピュータ・プログラム |
US8631116B2 (en) | 2007-11-28 | 2014-01-14 | Ccip Corp. | System and method for active business configured website monitoring |
US7953850B2 (en) * | 2008-10-03 | 2011-05-31 | Computer Associates Think, Inc. | Monitoring related content requests |
US8407321B2 (en) * | 2010-04-21 | 2013-03-26 | Microsoft Corporation | Capturing web-based scenarios |
US8655907B2 (en) * | 2011-07-18 | 2014-02-18 | Google Inc. | Multi-channel conversion path position reporting |
US20130232424A1 (en) * | 2012-03-02 | 2013-09-05 | Hitachi, Ltd. | User operation detection system and user operation detection method |
US20130332813A1 (en) | 2012-06-06 | 2013-12-12 | Sap Ag | Generic Workspace Awareness Support for Collaborative Web Applications |
US9356842B2 (en) * | 2012-11-09 | 2016-05-31 | Dynatrace Llc | Method and system for browser based, non-intrusive measuring of end-user perceived performance of individual third party resource requests |
GB2508190A (en) * | 2012-11-22 | 2014-05-28 | Wonga Technology Ltd | Monitoring user interaction with webpages using unique identifiers for page components |
US20150254219A1 (en) * | 2014-03-05 | 2015-09-10 | Adincon Networks LTD | Method and system for injecting content into existing computerized data |
-
2015
- 2015-02-24 EP EP15883534.8A patent/EP3262531A1/en not_active Withdrawn
- 2015-02-24 US US15/509,470 patent/US10289613B2/en active Active
- 2015-02-24 WO PCT/US2015/017185 patent/WO2016137435A1/en active Application Filing
- 2015-02-24 JP JP2017536780A patent/JP6505849B2/ja active Active
- 2015-02-24 CN CN201580076374.4A patent/CN107533544B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103460174A (zh) * | 2011-03-31 | 2013-12-18 | 惠普发展公司,有限责任合伙企业 | 增加用户界面元素 |
Also Published As
Publication number | Publication date |
---|---|
JP2018506783A (ja) | 2018-03-08 |
JP6505849B2 (ja) | 2019-04-24 |
CN107533544A (zh) | 2018-01-02 |
WO2016137435A1 (en) | 2016-09-01 |
US10289613B2 (en) | 2019-05-14 |
US20170286473A1 (en) | 2017-10-05 |
EP3262531A1 (en) | 2018-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10324828B2 (en) | Generating annotated screenshots based on automated tests | |
Lawson | Web scraping with Python | |
US10642608B2 (en) | Associating a visualization of user interface with source code | |
US9996513B2 (en) | Flexible analytics-driven webpage design and optimization | |
US10097440B2 (en) | User interface element adjustment using web analytics | |
US20170212730A1 (en) | Code validation using content assist | |
US8898178B2 (en) | Solution monitoring system | |
US10353721B2 (en) | Systems and methods for guided live help | |
US10303751B1 (en) | System and method for interaction coverage | |
CN112817817B (zh) | 埋点信息查询方法、装置、计算机设备和存储介质 | |
CN103678506B (zh) | 在浏览器中加载应用程序快捷方式的方法、装置和浏览器 | |
US9038019B2 (en) | Paige control for enterprise mobile applications | |
JP2011525001A (ja) | ビューアクライアントにおける文書の高忠実度レンダリング | |
CN107533544B (zh) | 元素标识符生成 | |
US11221881B2 (en) | Computer resource leak detection | |
Idris | Python data analysis cookbook | |
CN107710190B (zh) | 使用去耦合的呈现资源来呈现内容 | |
US10402049B1 (en) | User interface development | |
JP2018508865A (ja) | アプリケーションイベントの追跡 | |
JP2011164785A (ja) | 動作検証装置、動作検証方法および動作検証プログラム | |
US11126406B1 (en) | Embedded application programming interface explorer | |
CN117806688B (zh) | 热更新检测方法、装置、计算机设备和存储介质 | |
US10565084B2 (en) | Detecting transitions | |
US11907310B2 (en) | Data correlation system and method | |
US20100042937A1 (en) | Activities Operating on Structured Data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Utah, USA Applicant after: Weifosi Co., Ltd Address before: California, USA Applicant before: Antiy Software Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |