表单识别、填充方法、装置、电子设备及存储介质与流程
未命名
09-24
阅读:47
评论:0
1.本公开涉及计算机处理技术领域,具体涉及表单识别、填充方法、装置、电子设备及存储介质。
背景技术:
2.表单类形态在开发场景中非常常见,如果研发需求的功能测试依赖一个复杂表单的填写而得以继续,那么频繁的表单填写在研发自测和质量保证测试中就会占用过多碎片化的时间,此类需要频繁执行以生成测试数据或推进执行流程。其中,对于这类表单的自动填充,是依赖于准确的表单规则,而表单规则是对页面上的表单进行表单规则识别得到的。即,通过识别出的表单规则能够实现表单的自动填充。那么,若表单规则识别出现偏差将会带来后续表单填充的准确性。
技术实现要素:
3.有鉴于此,本公开实施例提供了一种表单识别、填充方法、装置、电子设备及存储介质,以解决准确识别表单规则的问题。
4.根据第一方面,本公开实施例提供了一种表单规则识别方法,包括:
5.获取当前页面中的待识别表单元素;
6.基于所述待识别表单元素中的属性名称以及属性值与目标页面框架的映射关系,确定所述待识别表单元素在所述目标页面框架上映射的实际生效属性;
7.基于所述实际生效属性获取所述待识别表单元素的表单状态;
8.基于所述表单状态收集所述待识别表单元素中控件的信息;
9.根据所述控件的信息生成所述待识别表单元素的目标表单规则。
10.根据第二方面,本公开实施例提供了一种表单填充方法,包括:
11.显示包括目标表单的目标页面,所述目标页面上显示有表单填充控件;
12.响应于对所述表单填充控件的选择操作,以启动对所述目标页面上表单的填充操作;
13.获取目标表单规则,所述目标表单规则是根据本公开第一方面或第一方面任一项实施方式中所述的表单规则识别方法确定的;
14.响应于对所述目标表单规则的选择操作,确定所述目标表单适用的可用表单规则;
15.基于所述可用表单规则对所述目标表单进行填充,确定填充后的目标表单。
16.根据第三方面,本公开实施例提供了一种表单规则识别装置,包括:
17.第一获取模块,用于获取当前页面中的待识别表单元素;
18.第一确定模块,用于基于所述待识别表单元素中的属性名称以及属性值与目标页面框架的映射关系,确定所述待识别表单元素在所述目标页面框架上映射的实际生效属性;
19.第二获取模块,用于基于所述实际生效属性获取所述待识别表单元素的表单状态;
20.收集模块,用于基于所述表单状态收集所述待识别表单元素中控件的信息;
21.生成模块,用于根据所述控件的信息生成所述待识别表单元素的目标表单规则。
22.根据第四方面,本公开实施例提供了一种表单填充装置,包括:
23.显示模块,用于显示包括目标表单的目标页面,所述目标页面上显示有表单填充控件;
24.第一响应模块,用于响应于对所述表单填充控件的选择操作,以启动对所述目标页面上表单的填充操作;
25.第三获取模块,用于获取目标表单规则,所述目标表单规则是根据本公开第一方面或第一方面任一项实施方式中所述的表单规则识别方法确定的;
26.第二响应模块,用于响应于对所述目标表单规则的选择操作,确定所述目标表单适用的可用表单规则;
27.填充模块,用于基于所述可用表单规则对所述目标表单进行填充,确定填充后的目标表单。
28.根据第五方面,本公开实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中所述的表单规则识别方法,或者,执行第二方面或者第二方面的任意一种实施方式中所述的表单填充方法。
29.根据第六方面,本公开实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行第一方面或者第一方面的任意一种实施方式中所述的表单规则识别方法,或者,执行第二方面或者第二方面的任意一种实施方式中所述的表单填充方法。
30.本公开实施例提供的表单规则识别方法,通过待识别表单元素的属性名称及属性值与目标页面框架的映射关系,确定出待识别表单元素在目标页面框架上映射的实际生效属性,即,从页面框架层面确定出实际生效的属性,不受前端框架及开源库选型的影响,提高了表单规则识别的兼容性与准确性。
附图说明
31.为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
32.图1是根据本公开实施例的表单规则识别方法的流程图;
33.图2是根据本公开实施例的表单规则识别方法的流程图;
34.图3是根据本公开实施例的表单规则识别方法的流程图;
35.图4是根据本公开实施例的表单填充方法的流程图;
36.图5是根据本公开实施例的表单填充方法的流程图;
37.图6是根据本公开实施例的表单填充方法的流程图;
38.图7是根据本公开实施例的表单规则识别装置的结构框图;
39.图8是根据本公开实施例的表单填充装置的结构框图;
40.图9是本公开实施例提供的电子设备的硬件结构示意图。
具体实施方式
41.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
42.自动化表单识别与填充工具,在解决表单规则识别与表单填充问题上,发挥着重要作用。当下,已有的方案多采用页面事件派发的形式进行,虽然通用,但是在容错率上非常差,加上不少用户界面(user interface,简称为ui)框架会拦截页面原生事件,并代替以自己的实现,这使得在某些表单控件上方案无法实施;另一种现有方案会要求开发者配合做侵入代码的改造,在这种方案中,一般通过约定网址或业务代码内嵌入开关,来让使用者可以显式的控制代码的执行逻辑,比如在特定时机对表单做赋值操作,对具体点击行为等回调函数进行调用。但是这种方案虽然相对准确但是却丧失了灵活性,且在批量产品中应用时需要开发者批量做代码侵入与升级,成本高昂;若是选用自动化测试工具来解决此问题,在功能上是完善的,但是从开发者以及使用者的便利性角度来看,基于这类方案用户在上手使用时都需要投入与解决该问题不匹配的成本与时间,性价比较低。
43.基于此,本公开实施例提供的表单规则识别方法,通过无代码侵入使得用户接入成本几乎为零,上手即用,且通过检测ui框架的对外暴露方法,精准获取表单属性名称及对应的属性值。进一步地,通过页面的文档对象模型(document object model,简称为dom)解析,提高表单规则提取的准确性。
44.本公开实施例提供的表单填充方法,同时允许用户自定义填充规则,对表单字段进行随机数生成。同时由于填充规则是自定义的,对于同一表单通过随机数生成能够对该表单进行一次提取多次复用,且填充数据不会重复的表单填充方案。
45.在下文的描述中,分别从表单规则识别以及表单填充这两个方面进行描述。先对待识别表单的表单规则进行识别,再结合交互编辑确定出自定义数据填充规则、表单规则的适用范围等等。在下文中虽然是针对待识别表单进行的表单规则识别的说明,但是并不限定仅对一种类型或一个待识别表单进的规则进行识别,可以是对多种类型的表单,例如,测试表单、问卷表单等等,对于不同的表单类型能够得到不同的表单规则。相应地,在进行表单规则存储时,可以依据表单类型进行存储。后续在进行表单填充时,可以依据待填充表单的类型,获取对应的表单规则进行填充。或者,在得到表单规则之后,可以设置该表单规则的适用范围,后续依据该适用范围即可确定待填充表单所适用的表单规则。当然,也可以采用其他方式建立表单规则与表单填充之间的关联关系,并不限于上文所述的表单类型或表单规则适用范围。
46.在进行表单填充时采用的是与表单规则识别类似的过程,均需要识别出表单中的实际生效属性,再进行表单数据的填充。关于表单中实际生效属性的识别具体将在下文中
进行详细描述。
47.根据本公开实施例,提供了一种表单规则识别方法以及表单填充方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
48.在本实施例中提供了一种表单规则识别方法,可用于电子设备,如移动终端、电脑等,图1是根据本公开实施例的表单规则识别方法的流程图,如图1所示,该流程包括如下步骤:
49.s11,获取当前页面中的待识别表单元素。
50.当前页面为用户正在浏览或编辑的网页,待识别表单元素为当前页面中的表单,在进行待识别表单元素获取时,可以是对通过网页应用程序接口获取页面中的dom元素,确定出待识别表单元素;或者,也可以采用其他方式进行待识别表单元素的获取,在此对其并不做任何限定。
51.s12,基于待识别表单元素中的属性名称以及属性值与目标页面框架的映射关系,确定待识别表单元素在目标页面框架上映射的实际生效属性。
52.在获取到待识别表单元素之后,即可获取到待识别表单元素中的属性名称以及各个属性名称的属性值。此处需要说明的是,不同页面框架下,表单元素中的属性名称在命名时会带有该页面框架的标识,以便利用属性名称确定当前页面所使用的页面框架。在确定出目标页面框架之后,再通过对属性值进行分析,结合目标页面框架查找到待识别表单元素在目标页面框架上映射的实际生效属性。
53.例如,在待识别表单元素中存在属性名称a,其属性值为a1,但是属性值a1引用b,b又引用c,此时c为属性名称a对应的实际生效属性。因此,需要结合目标页面框架对属性值进行分析,最终查询到实际生效属性。
54.s13,基于实际生效属性获取待识别表单元素的表单状态。
55.在获得实际生效属性之后,根据不同ui库开放的应用程序接口(application programming interface,简称为api),从中获取到表单状态,在表单状态中包含ui库提供给开发者使用的一系列api,在表单状态中可以对表单的属性值进行复制、获取、删除或清空等操作。其中,表单状态即为需要收集的实际表单结构,用于描述待识别表单中存在几个输入框、几个按钮或输入框中填入什么数据等等。
56.s14,基于表单状态收集待识别表单元素中控件的信息。
57.如上文所述,表单状态用于表示的是实际表单结构,对该实际表单结构进行解析能够确定出各个控件的信息。其中,控件的信息包括但不限于控件类型、控件的名称或控件的属性值。例如,待识别表单中输入框以及输入框内输入的数据等等。
58.s15,根据控件的信息生成待识别表单元素的目标表单规则。
59.依据所得到的控件的信息就能够得到各个控件的属性名称,控件的属性值、控件在表单中的位置等等,基于此,目标表单规则包括属性名称、属性值及表单所处页面的信息。其中,表单所处页面的信息包括当前页面的网址、表单在当前页面中的位置等等。将这些信息定义为一组表单规则,进一步地,目标表单规则中可以包括多组表单规则,即,表单规则内是一组集合,每项在后续可以扩展为一个表单控件集,也可以设置为派发事件项。
60.在对表单进行解析后得到表单规则,进一步地,在此基础上可以进行编辑,以改变一些内容,用于生成符合规则的数据并在指定元素上派发事件。其中,所述的改变内容包括但不限于:表单规则的生效范围,即所属网页网址;表单规则内表单填充与事件派发的组合顺序,例如,在表单填充完成后还需要执行若干项事件派发,或者在现有组合后新增新的表单填充或者事件派发项;单个表单控件的dom选择器、控件类型、名称以及数据填充规则;单个控件操作事件的延时等等。
61.基于此,在目标表单规则中不仅包括对当前页面中的待识别表单进行解析后得到的信息,还包括通过交互设置的一些编辑信息等等。具体的目标表单规则所包括的内容是根据实际需求进行设置的,在此对其并不做任何限定。
62.通过该目标表单规则即可确定出表单各个控件名称,对于各个控件如何生成相应的填充数据,还能够确定出针对表单的事件派发。例如,是填充完一个表单之后,点击完成即完成表单填充;还是填充完一个输入框需要点击下一步弹出另一个输入框再进行输入框内的数据填充,等等;将这些与控件之间的交互称之为事件派发。在得到目标表单规则之后,后续针对待填充表单时,先匹配出对应的目标表单规则,再依据目标表单规则的内容对待填充表单进行数据填充与事件派发。
63.本实施例提供的表单规则识别方法,通过待识别表单元素的属性名称及属性值与目标页面框架的映射关系,确定出待识别表单元素在目标页面框架上映射的实际生效属性,即,从页面框架层面确定出实际生效的属性,不受前端框架及开源库选型的影响,提高了表单规则识别的兼容性与准确性。
64.在本实施例中提供了一种表单规则识别方法,可用于电子设备,如移动终端、电脑等,图2是根据本公开实施例的表单规则识别方法的流程图,如图2所示,该流程包括如下步骤:
65.s21,获取当前页面中的待识别表单元素。
66.详细请参见图1所示实施例的s11,在此不再赘述。
67.s22,基于待识别表单元素中的属性名称以及属性值与目标页面框架的映射关系,确定待识别表单元素在目标页面框架上映射的实际生效属性。
68.具体地,上述s22包括:
69.s221,获取待识别表单元素中的属性名称,并利用属性名称的前缀与目标页面框架的唯一标识的对应关系,确定待识别表单元素所属的目标页面框架以确定目标页面框架下实例属性的标识。
70.在获取到待识别表单元素之后,循环遍历在这个待识别表单元素上存在的属性值,直到找到符合的元素在目标页面框架上映射的实际生效属性。具体地,从待识别表单元素中获取到待识别表单元素中的属性名称,对各个属性名称进行分析,得到各个属性名称的前缀。其中,属性名称的前缀是与待识别表单元素所属的页面框架是对应的,不同的页面框架下,属性名称的前缀不同。例如,以目标页面框架为react框架为例,在该框架下属性名称的前缀为'__reactfiber$'或者'__reactinternalinstance$'。在经过属性名称的前缀分析处理之后,确定出待识别表单元素所属的目标页面框架;相应地,目标页面框架存在自身对应的实例属性的标识,利用该实例属性的标识即可确定哪些属性值是实例属性值,以用于后续实际生效属性的查找。
71.s222,获取属性名称的属性值,并基于实例属性的标识确定属性值中包含实例属性的第一属性值以及包含其他属性的第二属性值。
72.经过上述s221的处理之后,得到目标页面框架下实例属性的标识,利用该标识对属性名称的属性值进行分析,若属性值中包含该实例属性的标识,则表示该属性值为实例属性值;若不包含该实例属性的标识,则表示需要进一步分析确定该属性值的实际生效属性值。
73.具体地,通过遍历各个属性名称的属性值,对属性值进行分析确定其是否包含实例属性的标识,若包含则将该属性值确定为第一属性值,第一属性值即为实际生效属性;若不包含则将该属性值确定为第二属性值,第二属性值需要进一步分析,以得到实际生效属性。
74.在一些实施方式中,上述s222包括:
75.(1)获取属性名称的属性值。
76.(2)对于各个属性名称的属性值,当属性值不为空时,判断属性值中是否包含实例属性的属性值。
77.(3)将包含实例属性的属性值确定为第一属性值以及将包含其他属性的属性值确定为第二属性值。
78.继续沿用上述示例,目标页面框架为react框架。react框架下实例属性的标识为_currentelement,通过对属性名称的属性值进行分析,先确定属性值是否为空,在不为空时才进行后续的判断处理。
79.在属性值不为空时,判断该属性值是否包含_currentelement属性,若包含_currentelement属性,则表示该属性值为实际生效属性;若不包含,则将其确定为第二属性值,需要继续进行实际生效属性的查找。
80.实例属性的判断是在属性值不为空时进行的,能够减少后续数据处理量,提高了表单识别的效率。
81.s223,对其他属性的第二属性值进行逐级查找,确定第二属性值的实际生效属性值。
82.如上文所述,其他属性的第二属性值是存在层级引用的,例如,第二属性值是a,a引用b,b又引用c,而c才是实际生效属性。因此,需要对第二属性值进行逐级查找,确定出第二属性值的实际生效属性值。
83.在一些实施方式中,上述s223包括:
84.(1)将第二属性值确定为当前节点。
85.(2)从当前节点开始向下查询,确定当前节点的终端节点。
86.(3)获取终端节点的值,并将终端节点的值确定为第二属性值的实际生效属性值。
87.具体地,将第二属性值确定为当前节点,从当前节点开始向下查询,直到找到当前节点的终端节点。并将终端节点的值确定为第二属性值的实际生效属性值。
88.对于第二属性值而言,可能由于表单开发者的实现方式的不同,可能存在层级调用,通过从当前节点开始向下查询直至查询到终端节点,从而准确地确定出第二属性值的实际生效属性值。
89.s224,基于第一属性值以及第二属性值的实际生效属性值,确定待识别表单元素
在目标页面框架上映射的实际生效属性。
90.待识别表单元素在目标页面框架上映射的实际生效属性包括包含实例属性的第一属性值,以及经过逐级分析得到的第二属性值的实际生效属性值。
91.s23,基于实际生效属性获取待识别表单元素的表单状态。
92.详细请参见图1所示实施例的s13,在此不再赘述。
93.s24,基于表单状态收集待识别表单元素中控件的信息。
94.具体地,上述s24包括:
95.s241,基于表单状态获取待识别表单元素中各个控件的属性名称以及属性值。
96.在获取到表单状态之后,利用目标页面框架开放的api,例如,采用getter方法,获取其中存在的待识别表单元素的取值集合,通过遍历序列化这个集合的属性值,并依次记录为待识别表单元素中各个控件的属性名称,同样地,能够得到属性名称对应的属性值。
97.s242,获取待识别表单的文档对象模型。
98.文档对象模型即上文所述的dom,通过利用当前页面所提供的api遍历当前页面,即可得到待识别表单的dom元素。
99.s243,将文档对象模型中的元素标识符与属性名称进行匹配,将匹配到的元素标识符的类型确定为控件的类型。
100.为了提升表单规则获取的准确性,将dom中的元素标识符(即,id属性)与属性名称进行匹配,如果匹配成功,则将该id属性子元素内的第一个可编辑子元素类型记录,用于增强标记该控件的类型。其中,控件的类型包括但不限于输入框、日期选择、单选框等等,以便于后续构造数据填充规则。
101.具体地,上述s24包括如下步骤:
102.(1)首先从表单状态中拿到当前所有取值集合a;
103.(2)遍历a的所有属性名fname与属性值fvalue,属性名存为表单控件,属性值记录为该控件下的实例值;
104.(3)遍历表单dom结构,查看是否存在id属性包含fname的元素,如果不包含,则将该表单控件定义为未知类型;如果包含则根据元素的实际类型,将控件定义为相同的类型,这里元素的类型包括输入框、日期选择、单选框等。
105.s25,根据控件的信息生成待识别表单元素的目标表单规则。
106.详细请参见图1所示实施例的s15,在此不再赘述。
107.本实施例提供的表单规则识别方法,利用属性名称确定出待识别表单元素所属的目标页面框架,以得到实例属性的标识,从而进行实例属性以及实际生效属性的确定,使得该方法不受当前页面的开发者实现方式的限制,兼容性高。结合待识别表单的文档对象模型确定各个控件的类型,能够提升表单规则获取的准确性,将匹配到的元素标识符的类型确定为控件的类型,以便于后续构造生成数据的规则。
108.在本实施例中提供了一种表单规则识别方法,可用于电子设备,如移动终端、电脑等,图3是根据本公开实施例的表单规则识别方法的流程图,如图3所示,该流程包括如下步骤:
109.s31,获取当前页面中的待识别表单元素。
110.具体地,上述s31包括:
111.s311,启动对当前页面中表单的收集功能。
112.在当前页面中设置有启动控件,通过与该启动控件的交互即可启动表单收集功能。
113.在一些实施方式中,上述s311包括:
114.(1)响应于当前页面的打开操作,显示当前页面,所述当前页面中包括有表单收集控件。
115.(2)响应于对表单收集控件的选择操作,以在当前页面显示表单收集消息并启动对当前页面中表单的收集功能。
116.在打开当前页面之后,在当前页面中显示有表单收集控件。其中,表单收集控件可以显示在当前页面的工具栏中,或者,浮动显示在当前页面上,在此对其并不做任何限定,具体根据实际需求进行设置。
117.在需要进行表单收集时,用于选择该表单收集控件,相应地,响应于该选择操作触发表单收集。在触发表单收集时,在当前页面显示表单收集消息,以告知用户当前执行表单规则识别操作。在收集表单信息时,在页面上显示表单收集消息,用于告知执行表单规则的识别操作。
118.在一些实施方式中,上述s311的步骤(1)包括:
119.1.1)响应于目标浏览器的插件列表的选择操作,以确定目标插件,所述目标插件用于收集目标浏览器的页面中的表单元素。
120.1.2)响应于对目标插件的安装操作,以在目标浏览器的当前页面上显示表单收集控件。
121.表单收集控件是需要在目标浏览器中安装目标插件后才会在当前页面中进行显示的,需要说明的是,该目标插件能够兼容各类浏览器,并不限定浏览器的类型,在任一类型的浏览器上均适用。初始在安装该目标插件时,响应于对目标浏览器插件列表的选择操作,确定出目标插件,再对目标插件进行安装,安装完成之后才会在目标浏览器的页面上包括有表单收集控件。
122.在一个具体实施方式中,在目标插件安装完成之后,在目标浏览器的插件列表中包括有该目标插件的图标。在目标插件的安装过程中,会执行一段脚本代码,以完成本地存储等装置环境的初始化工作。
123.当打开一个当前页面之后,可以通过与当前页面上的表单的交互进行一些填写操作,也可以是在当前页面上做些其他交互操作。此时,目标插件也会在背后单独进程执行一段代码,将必要的检测代码注入当前页面。当用户选择表单收集控件时,开始执行表单规则识别。在表单规则识别过程中,在页面上显示一条消息,以告知当前执行表单规则识别操作。该方式无需额外的软件安装,通过浏览器插件的方式使用,简单易用,成本较低。
124.s312,通过浏览器应用程序编程接口查询当前页面,以确定当前页面中是否存在表单元素。
125.基于目标插件会注册监听器,用于监听传入当前页面中的消息并响应,例如,收集填入的表单数据,事件派发等等。监听器在收到执行命令后,会通过浏览器api查询当前页面,以确定是否存在表单元素。
126.s313,当当前页面中存在表单元素时,提取当前页面中的活跃表单元素,并将活跃
表单元素确定为待识别表单元素。
127.其中,所述活跃表单元素为处于编辑状态的表单元素。
128.活跃表单元素表示当前用户正在编辑的表单元素,即,显示在当前页面上对用户可见的第一个表单元素。在当前页面存在表单元素时,从当前页面中提取活跃表单元素,将其作为待识别表单元素。
129.s32,基于待识别表单元素中的属性名称以及属性值与目标页面框架的映射关系,确定待识别表单元素在目标页面框架上映射的实际生效属性。
130.详细请参见图2所示实施例的s22,在此不再赘述。
131.s33,基于实际生效属性获取待识别表单元素的表单状态。
132.详细请参见图1所示实施例的s13,在此不再赘述。
133.s34,基于表单状态收集待识别表单元素中控件的信息。
134.详细请参见图2所示实施例的s24,在此不再赘述。
135.s35,根据控件的信息生成待识别表单元素的目标表单规则。
136.具体地,上述s35包括:
137.s351,获取当前页面的页面信息。
138.当前页面的页面信息包括但不限于当前页面的网址、待识别表单元素在当前页面中的位置等等。
139.s352,基于控件的信息以及页面信息,确定待识别表单元素的表单规则。
140.控件的信息包括控件的属性名称,以及属性名称的取值,即属性值。将控件的信息以及页面信息一并存储,得到待识别表单元素的表单规则。该表单规则是通过对待识别表单进行自动解析后得到的。
141.s353,响应于对表单规则的编辑操作,确定表单规则的编辑信息以确定目标表单规则。
142.其中,所述编辑信息包括表单生效范围、表单填充与事件派发的组合顺序、表单数据的填充规则或控件操作规则中的至少之一。
143.在得到表单规则之后,为了使得表单规则能够适用于其他页面上的表单,对表单规则进行编辑得到该表单规则的编辑信息,将表单规则以及编辑信息确定为目标表单规则。其中,编辑信息是用于生成符合表单规则的数据并在指定元素上派发事件。
144.编辑信息包括表单生效范围,即该表单规则适用于哪些网址上的表单;表单填充与事件派发的组合顺序,即用于表示表单数据填充与控件操作之间的组合顺序,是全部数据填充完之后再进行事件派发,还是数据填充与事件派发并行,还是仅有事件派发,等等;表单数据的填充规则,用于表示生成填充数据的规则,例如,是生成数字、字符或者数字与字符的组合,若对于未进行填充规则的配置,则将对待识别表单的表单规则收集过程中收集到的属性值作为兜底数据进行填充;控件操作规则,用于表示控件选择后的操作延时,例如,选择控件1s后进行事件派发,或立即进行事件派发等等。
145.当然,编辑信息的具体内容并不限于上文所述,具体根据实际需求进行设置即可,在此对其并不做任何限定。
146.本实施例提供的表单规则识别方法,表单的收集功能是依据需求启动的,且基于浏览器应用程序编程接口进行表单元素的查询,使得查询过程无需关系开发人员的具体实
现,识别过程不依赖代码侵入,对开发人员无接入成本。在自动识别的基础上,结合交互处理确定表单规则的编辑信息,这些编辑信息用于生成符合规则的数据,在指定元素上派发事件;且,通过编辑表单数据的填充规则实现数据的自定义填充,通过组合顺序编辑支持事件派发,支持多步骤表单填充,拥有组合能力。
147.在上文所述的实施例中描述了对待识别表单的表单规则收集,收集得到的目标表单规则是用于后续对目标表单进行自动数据填充。
148.在本实施例中提供了一种表单填充方法,可用于电子设备,如移动终端、电脑等,图4是根据本公开实施例的表单规则识别方法的流程图,如图4所示,该流程包括如下步骤:
149.s41,显示包括目标表单的目标页面。
150.其中,所述目标页面上显示有表单填充控件。
151.目标页面为当前需要进行表单数据填充的页面,目标表单为需要进行数据填充的表单。与上文所述的表单收集控件对应,在目标页面上显示有表单填充控件,当用户选择该表单填充控件时,表示需要进行表单填充操作。其中,表单收集控件也是在安装目标插件后才存在的,关于目标插件的具体内容请参见上文所述,在此不再赘述。
152.s42,响应于对表单填充控件的选择操作,以启动对目标页面上表单的填充操作。
153.在选择表单填充控件之后,相应地,响应于该选择操作,启动对目标页面上表单的填充操作。
154.s43,获取目标表单规则。
155.其中,所述目标表单规则是根据上述任一项所述的表单规则识别方法确定的,具体参见上文表单规则识别方法的对应描述,在此不再赘述。
156.目标表单规则可以是在表单填充之前收集并存储在电子设备中的,也可以是在表单填充之前收集到的,等等。
157.s44,响应于对目标表单规则的选择操作,确定目标表单适用的可用表单规则。
158.目标表单规则中可能包括有多个表单规则,有的并不能够适用于目标页面上的目标表单,因此,需要进行目标表单规则的选择,以确定出适用的可用表单规则。
159.s45,基于可用表单规则对目标表单进行填充,确定填充后的目标表单。
160.在可用表单规则中,可以利用自定义规则来定义数据生成方式,也可以通过传入一个数组以便随机选取一个值用来填充,若不填入任何数据,则使用表单规则收集过程中采集到的控件属性值来进行填充。经过填充或事件派发处理之后,得到填充后的目标表单。
161.需要说明的是,对于同一目标表单可以执行多次表单填充,由于每次填充数据是随机生成的,则可以得到多个不同的填充后的目标表单。
162.在进行数据填充时,也是先要识别出目标表单中的实际生效属性,在对实际生效属性进行数据填充,而实际生效属性的识别过程与上文表单规则识别中实际生效属性的识别过程类似,在此不再赘述。
163.本实施例提供的表单填充方法,在准确识别出的目标表单规则的基础上实现表单的自动填充,提高表单填充的效率。
164.在本实施例中提供了一种表单填充方法,可用于电子设备,如移动终端、电脑等,图5是根据本公开实施例的表单规则识别方法的流程图,如图5所示,该流程包括如下步骤:
165.s51,显示包括目标表单的目标页面。
166.其中,所述目标页面上显示有表单填充控件。
167.详细请参见图4所示实施例的s41,在此不再赘述。
168.s52,响应于对表单填充控件的选择操作,以启动对目标页面上表单的填充操作。
169.详细请参见图4所示实施例的s42,在此不再赘述。
170.s53,获取目标表单规则。
171.其中,所述目标表单规则是根据上述任一项所述的表单规则识别方法确定的。
172.详细请参见图4所示实施例的s43,在此不再赘述。
173.s54,响应于对目标表单规则的选择操作,确定目标表单适用的可用表单规则。
174.具体地,上述s54包括:
175.s541,基于目标页面的信息对目标表单规则进行筛选,确定并显示可选表单规则。
176.目标页面的信息包括但不限于目标页面的网址或目标页面中目标表单的类型等等,利用该目标页面的信息先对目标表单规则进行初次的自动筛选,从而得到可选表单规则,并显示出该可选表单规则。
177.s542,响应于对可选表单规则的选择操作,确定可用表单规则。
178.用户通过与可选表单规则的交互,进行可选表单规则的选择,相应地,响应于用户的选择操作,确定可用表单规则。
179.s55,基于可用表单规则对目标表单进行填充,确定填充后的目标表单。
180.具体地,上述s55包括:
181.s551,依据顺序依次从可用表单规则中读取编辑信息。
182.其中,所述编辑信息包括表单填充与事件派发的组合顺序、表单数据的填充规则或控件操作规则中的至少之一。
183.s552,基于编辑信息对目标表单进行填充,确定填充后的目标表单。
184.在确定出可用表单规则之后,依据顺序依次从可用表单规则中读取编辑信息,并结合如图6所示的过程进行数据填充。关于编辑信息的具体内容请详见上文表单规则识别中对应内容的描述,在此不再赘述。
185.如图6所示,从可用表单规则中读取填充规则,并查询目标表单中的字段,若设置有填充规则,则基于mock.js规则生成填充数据。其中,基于mock.js规则达到对填充数据进行自定义构造的目的,包含邮箱、数字、名字、段落、时间或日期等各类常见的填写场景。
186.若未设置填充规则,则读取规则识别时收集到的实际生效属性值作为填充数据。在组装表单数据时,可以是单独的派发事件项,也可以是单独的表单填充项,或者是派发事件项与表单填充项的组合等等。
187.在一些实施方式中,若编辑信息中设定了延时数据,则会在完成指定计时后再开始工作,直至所有数据填充完毕。
188.本实施例提供的表单填充方法,对于目标表单规则而言,先进行适用于目标页面信息的表单规则筛选,仅显示可选表单规则,从而减少用户选择的范围,提高了所确定出的可用表单规则与目标页面的匹配度,进而提高了表单填充的准确性。
189.在本实施例中还提供了一种表单规则识别装置以及表单填充装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件
来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
190.本实施例提供一种表单规则识别装置,如图7所示,包括:
191.第一获取模块61,用于获取当前页面中的待识别表单元素;
192.第一确定模块62,用于基于所述待识别表单元素中的属性名称以及属性值与目标页面框架的映射关系,确定所述待识别表单元素在所述目标页面框架上映射的实际生效属性;
193.第二获取模块63,用于基于所述实际生效属性获取所述待识别表单元素的表单状态;
194.收集模块64,用于基于所述表单状态收集所述待识别表单元素中控件的信息;
195.生成模块65,用于根据所述控件的信息生成所述待识别表单元素的目标表单规则。
196.在一些实施方式中,第一确定模块62包括:
197.第一获取单元,用于获取所述待识别表单元素中的属性名称,并利用所述属性名称的前缀与所述目标页面框架的唯一标识的对应关系,确定所述待识别表单元素所属的目标页面框架以确定所述目标页面框架下实例属性的标识;
198.第二获取单元,用于获取所述属性名称的属性值,并基于所述实例属性的标识确定所述属性值中包含实例属性的第一属性值以及包含其他属性的第二属性值;
199.查找单元,用于对所述其他属性的第二属性值进行逐级查找,确定所述第二属性值的实际生效属性值;
200.第一确定单元,用于基于所述第一属性值以及所述第二属性值的实际生效属性值,确定所述待识别表单元素在所述目标页面框架上映射的实际生效属性。
201.在一些实施方式中,第二获取单元包括:
202.第一获取子单元,用于获取所述属性名称的属性值;
203.判断子单元,用于对于各个所述属性名称的属性值,当所述属性值不为空时,判断所述属性值中是否包含所述实例属性的属性值;
204.第一确定子单元,用于将包含所述实例属性的属性值确定为第一属性值以及将包含其他属性的属性值确定为第二属性值。
205.在一些实施方式中,查找单元包括:
206.第二确定子单元,用于将所述第二属性值确定为当前节点;
207.查询子单元,用于从所述当前节点开始向下查询,确定所述当前节点的终端节点;
208.第二确定子单元,用于获取所述终端节点的值,并将所述终端节点的值确定为所述第二属性值的实际生效属性值。
209.在一些实施方式中,收集模块64包括:
210.第三获取单元,用于基于所述表单状态获取所述待识别表单元素中各个控件的属性名称以及属性值;
211.第四获取单元,用于获取所述待识别表单的文档对象模型;
212.匹配单元,用于将所述文档对象模型中的元素标识符与所述属性名称进行匹配,将匹配到的元素标识符的类型确定为所述控件的类型。
213.在一些实施方式中,生成模块65包括:
214.第四获取单元,用于获取所述当前页面的页面信息;
215.第二确定单元,用于基于所述控件的信息以及所述页面信息,确定所述待识别表单元素的表单规则;
216.第一响应单元,用于响应于对所述表单规则的编辑操作,确定表单规则的编辑信息以确定目标表单规则,所述编辑信息包括所述表单生效范围、表单填充与事件派发的组合顺序、表单数据的填充规则或控件操作规则中的至少之一。
217.在一些实施方式中,第一获取模块61包括:
218.启动单元,用于启动对所述当前页面中表单的收集功能;
219.查询单元,用于通过浏览器应用程序编程接口查询当前页面,以确定所述当前页面中是否存在表单元素;
220.提取单元,用于当所述当前页面中存在表单元素时,提取所述当前页面中的活跃表单元素,并将所述活跃表单元素确定为待识别表单元素,所述活跃表单元素为处于编辑状态的表单元素。
221.在一些实施方式中,启动单元包括:
222.第一响应子单元,用于响应于所述当前页面的打开操作,显示所述当前页面,所述当前页面中包括有表单收集控件;
223.第二响应子单元,用于响应于对所述表单收集控件的选择操作,以在所述当前页面显示表单收集消息并启动对所述当前页面中表单的收集功能。
224.在一些实施方式中,第一响应子单元包括:
225.第三响应子单元,用于响应于目标浏览器的插件列表的选择操作,以确定目标插件,所述目标插件用于收集所述目标浏览器的页面中的表单元素;
226.第四响应子单元,用于响应于对所述目标插件的安装操作,以在所述目标浏览器的当前页面上显示所述表单收集控件。
227.本实施例提供一种表单填充装置,如图8所示,包括:
228.显示模块71,用于显示包括目标表单的目标页面,所述目标页面上显示有表单填充控件;
229.第一响应模块72,用于响应于对所述表单填充控件的选择操作,以启动对所述目标页面上表单的填充操作;
230.第三获取模块73,用于获取目标表单规则,所述目标表单规则是根据上述任一实施方式中所述的表单规则识别方法确定的;
231.第二响应模块74,用于响应于对所述目标表单规则的选择操作,确定所述目标表单适用的可用表单规则;
232.填充模块75,用于基于所述可用表单规则对所述目标表单进行填充,确定填充后的目标表单。
233.在一些实施方式中,第一响应模块72包括:
234.筛选单元,用于基于所述目标页面的信息对所述目标表单规则进行筛选,确定并显示可选表单规则;
235.第二响应单元,用于响应于对所述可选表单规则的选择操作,确定所述可用表单规则。
236.在一些实施方式中,填充模块75包括:
237.读取单元,用于依据顺序依次从所述可用表单规则中读取编辑信息,所述编辑信息包括表单填充与事件派发的组合顺序、表单数据的填充规则或控件操作规则中的至少之一;
238.填充单元,用于基于所述编辑信息对所述目标表单进行填充,确定填充后的目标表单。
239.本实施例中的表单规则识别装置以及表单填充装置是以功能单元的形式来呈现,这里的单元是指asic电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
240.上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
241.本公开实施例还提供一种电子设备,具有上述图7所示的表单规则识别装置,或图8所示的表单填充装置。
242.请参阅图9,图9是本公开可选实施例提供的一种电子设备的结构示意图,如图9示,该电子设备可以包括:至少一个处理器81,例如cpu(central processing unit,中央处理器),至少一个通信接口83,存储器84,至少一个通信总线82。其中,通信总线82用于实现这些组件之间的连接通信。其中,通信接口83可以包括显示屏(display)、键盘(keyboard),可选通信接口83还可以包括标准的有线接口、无线接口。存储器84可以是高速ram存储器(random access memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器84可选的还可以是至少一个位于远离前述处理器81的存储装置。其中处理器81可以结合图7或图8所描述的装置,存储器84中存储应用程序,且处理器81调用存储器84中存储的程序代码,以用于执行上述任一方法步骤。
243.其中,通信总线82可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。通信总线82可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
244.其中,存储器84可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:ram);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:hdd)或固态硬盘(英文:solid-state drive,缩写:ssd);存储器84还可以包括上述种类的存储器的组合。
245.其中,处理器81可以是中央处理器(英文:central processing unit,缩写:cpu),网络处理器(英文:network processor,缩写:np)或者cpu和np的组合。
246.其中,处理器81还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:asic),可编程逻辑器件(英文:programmable logic device,缩写:pld)或其组合。上述pld可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:cpld),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:fpga),通用阵列逻辑(英文:generic array logic,缩写:gal)或其任意组合。
247.可选地,存储器84还用于存储程序指令。处理器81可以调用程序指令,实现如本技术任一实施例中所示的表单规则识别方法或表单填充方法。
248.本公开实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的表单规则识别方法或表单填充方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
249.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于设备及系统实施例,所以描述的比较简单,相关之处参见设备及系统实施例的部分说明即可。
250.可以理解的是,在本公开的具体实施方式中,涉及到表单信息的收集,当本公开以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
251.虽然结合附图描述了本公开的实施例,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
技术特征:
1.一种表单规则识别方法,其特征在于,包括:获取当前页面中的待识别表单元素;基于所述待识别表单元素中的属性名称以及属性值与目标页面框架的映射关系,确定所述待识别表单元素在所述目标页面框架上映射的实际生效属性;基于所述实际生效属性获取所述待识别表单元素的表单状态;基于所述表单状态收集所述待识别表单元素中控件的信息;根据所述控件的信息生成所述待识别表单元素的目标表单规则。2.根据权利要求1所述的方法,其特征在于,所述基于所述待识别表单元素中的属性名称以及属性值与目标页面框架的映射关系,确定所述待识别表单元素在所述目标页面框架上映射的实际生效属性,包括:获取所述待识别表单元素中的属性名称,并利用所述属性名称的前缀与所述目标页面框架的唯一标识的对应关系,确定所述待识别表单元素所属的目标页面框架以确定所述目标页面框架下实例属性的标识;获取所述属性名称的属性值,并基于所述实例属性的标识确定所述属性值中包含实例属性的第一属性值以及包含其他属性的第二属性值;对所述其他属性的第二属性值进行逐级查找,确定所述第二属性值的实际生效属性值;基于所述第一属性值以及所述第二属性值的实际生效属性值,确定所述待识别表单元素在所述目标页面框架上映射的实际生效属性。3.根据权利要求2所述的方法,其特征在于,所述获取所述属性名称的属性值,并基于所述实例属性的标识确定所述属性值中包含实例属性的第一属性值以及包含其他属性的第二属性值,包括:获取所述属性名称的属性值;对于各个所述属性名称的属性值,当所述属性值不为空时,判断所述属性值中是否包含所述实例属性的属性值;将包含所述实例属性的属性值确定为第一属性值以及将包含其他属性的属性值确定为第二属性值。4.根据权利要求2所述的方法,其特征在于,所述对所述其他属性的第二属性值进行逐级查找,确定所述第二属性值的实际生效属性值,包括:将所述第二属性值确定为当前节点;从所述当前节点开始向下查询,确定所述当前节点的终端节点;获取所述终端节点的值,并将所述终端节点的值确定为所述第二属性值的实际生效属性值。5.根据权利要求1所述的方法,其特征在于,所述基于所述表单状态收集所述待识别表单元素中控件的信息,包括:基于所述表单状态获取所述待识别表单元素中各个控件的属性名称以及属性值;获取所述待识别表单的文档对象模型;将所述文档对象模型中的元素标识符与所述属性名称进行匹配,将匹配到的元素标识符的类型确定为所述控件的类型。
6.根据权利要求1所述的方法,其特征在于,所述根据所述控件的信息生成所述待识别表单元素的目标表单规则,包括:获取所述当前页面的页面信息;基于所述控件的信息以及所述页面信息,确定所述待识别表单元素的表单规则;响应于对所述表单规则的编辑操作,确定表单规则的编辑信息以确定目标表单规则,所述编辑信息包括所述表单生效范围、表单填充与事件派发的组合顺序、表单数据的填充规则或控件操作规则中的至少之一。7.根据权利要求1所述的方法,其特征在于,所述获取当前页面中的待识别表单元素,包括:启动对所述当前页面中表单的收集功能;通过浏览器应用程序编程接口查询当前页面,以确定所述当前页面中是否存在表单元素;当所述当前页面中存在表单元素时,提取所述当前页面中的活跃表单元素,并将所述活跃表单元素确定为待识别表单元素,所述活跃表单元素为处于编辑状态的表单元素。8.根据权利要求7所述的方法,其特征在于,所述启动对所述当前页面中表单的收集功能,包括:响应于所述当前页面的打开操作,显示所述当前页面,所述当前页面中包括有表单收集控件;响应于对所述表单收集控件的选择操作,以在所述当前页面显示表单收集消息并启动对所述当前页面中表单的收集功能。9.根据权利要求8所述的方法,其特征在于,所述响应于所述当前页面的打开操作,显示所述当前页面,包括:响应于目标浏览器的插件列表的选择操作,以确定目标插件,所述目标插件用于收集所述目标浏览器的页面中的表单元素;响应于对所述目标插件的安装操作,以在所述目标浏览器的当前页面上显示所述表单收集控件。10.一种表单填充方法,其特征在于,包括:显示包括目标表单的目标页面,所述目标页面上显示有表单填充控件;响应于对所述表单填充控件的选择操作,以启动对所述目标页面上表单的填充操作;获取目标表单规则,所述目标表单规则是根据权利要求1-9中任一项所述的表单规则识别方法确定的;响应于对所述目标表单规则的选择操作,确定所述目标表单适用的可用表单规则;基于所述可用表单规则对所述目标表单进行填充,确定填充后的目标表单。11.根据权利要求10所述的方法,其特征在于,所述响应于对所述目标表单规则的选择操作,确定所述目标表单适用的可用表单规则,包括:基于所述目标页面的信息对所述目标表单规则进行筛选,确定并显示可选表单规则;响应于对所述可选表单规则的选择操作,确定所述可用表单规则。12.根据权利要求10所述的方法,其特征在于,所述基于所述可用表单规则对所述目标表单进行填充,确定填充后的目标表单,包括:
依据顺序依次从所述可用表单规则中读取编辑信息,所述编辑信息包括表单填充与事件派发的组合顺序、表单数据的填充规则或控件操作规则中的至少之一;基于所述编辑信息对所述目标表单进行填充,确定填充后的目标表单。13.一种表单规则识别装置,其特征在于,包括:第一获取模块,用于获取当前页面中的待识别表单元素;第一确定模块,用于基于所述待识别表单元素中的属性名称以及属性值与目标页面框架的映射关系,确定所述待识别表单元素在所述目标页面框架上映射的实际生效属性;第二获取模块,用于基于所述实际生效属性获取所述待识别表单元素的表单状态;收集模块,用于基于所述表单状态收集所述待识别表单元素中控件的信息;生成模块,用于根据所述控件的信息生成所述待识别表单元素的目标表单规则。14.一种表单填充装置,其特征在于,包括:显示模块,用于显示包括目标表单的目标页面,所述目标页面上显示有表单填充控件;第一响应模块,用于响应于对所述表单填充控件的选择操作,以启动对所述目标页面上表单的填充操作;第三获取模块,用于获取目标表单规则,所述目标表单规则是根据权利要求1-9中任一项所述的表单规则识别方法确定的;第二响应模块,用于响应于对所述目标表单规则的选择操作,确定所述目标表单适用的可用表单规则;填充模块,用于基于所述可用表单规则对所述目标表单进行填充,确定填充后的目标表单。15.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-9中任一项所述的表单规则识别方法,或者,执行权利要求10-12中任一项所述的表单填充方法。16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-9中任一项所述的表单规则识别方法,或者,执行权利要求10-12中任一项所述的表单填充方法。
技术总结
本公开涉及计算机处理技术领域,具体涉及表单识别、填充方法、装置、电子设备及存储介质,该方法包括获取当前页面中的待识别表单元素;基于所述待识别表单元素中的属性名称以及属性值与目标页面框架的映射关系,确定所述待识别表单元素在所述目标页面框架上映射的实际生效属性;基于所述实际生效属性获取所述待识别表单元素的表单状态;基于所述表单状态收集所述待识别表单元素中控件的信息;根据所述控件的信息生成所述待识别表单元素的目标表单规则。从页面框架层面确定出实际生效的属性,不受前端框架及开源库选型的影响,提高了表单规则识别的兼容性与准确性。表单规则识别的兼容性与准确性。表单规则识别的兼容性与准确性。
技术研发人员:江涛 王剑
受保护的技术使用者:北京有竹居网络技术有限公司
技术研发日:2023.01.12
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/