CN102662837A - 一种浏览器的测试方法和系统 - Google Patents

一种浏览器的测试方法和系统 Download PDF

Info

Publication number
CN102662837A
CN102662837A CN2012100895648A CN201210089564A CN102662837A CN 102662837 A CN102662837 A CN 102662837A CN 2012100895648 A CN2012100895648 A CN 2012100895648A CN 201210089564 A CN201210089564 A CN 201210089564A CN 102662837 A CN102662837 A CN 102662837A
Authority
CN
China
Prior art keywords
current browsing
browsing device
kernel
page
browser
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.)
Granted
Application number
CN2012100895648A
Other languages
English (en)
Other versions
CN102662837B (zh
Inventor
赵鹏
任寰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Qizhi Software Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qizhi Software Beijing Co Ltd filed Critical Qizhi Software Beijing Co Ltd
Priority to CN201210089564.8A priority Critical patent/CN102662837B/zh
Priority to CN201510142407.2A priority patent/CN104714889B/zh
Publication of CN102662837A publication Critical patent/CN102662837A/zh
Application granted granted Critical
Publication of CN102662837B publication Critical patent/CN102662837B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种浏览器的测试方法和系统,所述浏览器至少包括第一内核和第二内核,其中的方法具体包括:加载当前浏览器页面;识别当前浏览器页面的内核;依据当前浏览器页面的内核,获取相应的文档对象;依据当前浏览器页面的文档对象模拟用户的操作。本发明能够高效便捷地对双核、多核等浏览器进行测试。

Description

一种浏览器的测试方法和系统
技术领域
本申请涉及浏览器技术领域,特别是涉及一种浏览器的测试方法和系统。
背景技术
目前随着互联网普及率的迅猛增长,浏览器成了获取信息的重要工作。另一方面,随着消费电子、计算机、通信一体化的趋势,浏览器也随之出现。浏览器可以广泛用于网络电视、网络终端、数字电视机顶盒、掌上电脑等各种信息电器和便携式网络终端中,在工业控制领域也有着广泛的应用前景。
浏览器环境下,一般没有鼠标,遥控器的按键输入是用户与系统的唯一交互。为此,在进行浏览器测试时,需要人工多次进行按键操作,而且对于一个问题只有在长时间才会出现的情况,则回归测试、重现问题等过程也需要长时间、重复地按键操作。因此,这种方式不仅效率低,而且操作不方便。
现有一些浏览器测试方法在测试过程中可以模拟用户在浏览器中的大部分操作,故能省去大量的人工操作,提高测试效率,其目前支持的浏览器有IE、Firefox、Opera等,还不支持直接操作与chrome浏览器。也即,现有浏览器测试方法通常只能在IE内核的浏览器中使用,无法运用到其他非IE内核的浏览器中,更无法运用到带有IE内核的双核浏览器(如WebKit+Trident的双核浏览器)中。
总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够能够高效便捷地对双核浏览器进行测试。
发明内容
本申请所要解决的技术问题是提供一种浏览器的测试方法和系统,能够高效便捷地对双核、多核等浏览器进行测试。
为了解决上述问题,本申请公开了一种浏览器的测试方法,所述浏览器至少包括第一内核和第二内核,包括:
加载当前浏览器页面;
识别当前浏览器页面的内核;
依据当前浏览器页面的内核,获取相应的文档对象;
依据当前浏览器页面的文档对象模拟用户的操作。
优选的,所述识别当前浏览器页面的内核的步骤,包括:
采用查找标题的方式得到当前浏览器窗口的句柄;
依据当前浏览器窗口的句柄获取当前浏览器窗口相对屏幕的左上角坐标,进而得到当前浏览器页面的句柄;
依据当前浏览器页面的句柄类名,识别当前浏览器页面的内核。
优选的,所述识别当前浏览器页面的内核的步骤,包括:
采用查找标题的方式得到当前浏览器窗口的句柄;
依据当前浏览器窗口的句柄获取当前浏览器窗口的进程;
枚举当前浏览器窗口的进程的子进程;
依据当前浏览器窗口的进程的子进程的类属性,识别当前浏览器页面的内核。
优选的,所述依据当前浏览器页面的内核,获取相应的文档对象的步骤,包括:
如果当前浏览器页面的内核为第一内核,则使用IHTMLDocument2接口获取相应的文件对象;如果当前浏览器页面的内核为第二内核,则依据相应内核服务器的专用通道获取相应的文件对象。
优选的,还包括:
在加载当前浏览器页面前,创建第二内核服务器的专用通道,并依据该专用通道启动浏览器;
所述专用通道包括相应的通信端口;
所述依据相应内核服务器的专用通道获取相应的文件对象的步骤包括:
向所述相应内核服务器的专用通道的通信端口发送获取文件对象的获取指令;
接收所述相应内核服务器的专用通道的通信端口返回的文档对象。
优选的,所述方法还包括:
在浏览器启动后,如果监控到当前浏览器页面的标签发生了切换,则向接收器发送一条http数据,该条http数据中携带有最新标签的ID;
接收器在接收到该条http数据时,发送消息通知;
所述依据相应内核服务器的专用通道获取相应的文件对象的步骤还包括:
在接收到该消息通知时,通过解析该条http数据获得最新标签的ID;
向所述相应内核服务器的专用通道的通信端口发送切换标签ID的文档对象的切换指令,该切换指令中携带有最新标签的ID;
接收所述相应内核服务器的专用通道的通信端口返回的最新标签的文档对象。
优选的,所述加载当前浏览器页面的步骤,包括:
采用第一子线程加载当前浏览器页面,并延迟判断当前浏览器页面是否一直处于加载中,若是,则关闭当前浏览器页面及相应的子线程,并采用第二子线程进行后续浏览器页面的加载。
另一方面,本申请还公开了一种浏览器的测试系统,所述浏览器至少包括第一内核和第二内核,包括:
页面加载装置,用于加载当前浏览器页面;
内核识别装置,用于识别当前浏览器页面的内核;
对象获取装置,用于依据当前浏览器页面的内核,获取相应的文档对象;及
测试装置,用于依据当前浏览器页面的文档对象模拟用户的操作。
优选的,所述内核识别装置包括:
第一窗口句柄获取模块,用于采用查找标题的方式得到当前浏览器窗口的句柄;
页面句柄获取模块,用于依据当前浏览器窗口的句柄获取当前浏览器窗口相对屏幕的左上角坐标,进而得到当前浏览器页面的句柄;及
第一识别模块,用于依据当前浏览器页面的句柄类名,识别当前浏览器页面的内核。
优选的,所述内核识别装置包括:
第二窗口句柄获取模块,用于采用查找标题的方式得到当前浏览器窗口的句柄;
进程获取模块,用于依据当前浏览器窗口的句柄获取当前浏览器窗口的进程;
子进程枚举模块,用于枚举当前浏览器窗口的进程的子进程;
第二识别模块,用于依据当前浏览器窗口的进程的子进程的类属性,识别当前浏览器页面的内核。
优选的,所述对象获取装置包括:
第一对象获取模块,用于在当前浏览器页面的内核为第一内核时,使用IHTMLDocument2接口获取相应的文件对象;及
第二对象获取模块,用于在当前浏览器页面的内核为第二内核时,依据相应内核服务器的专用通道获取相应的文件对象。
优选的,还包括:
浏览器启动装置,用于在加载当前浏览器页面前,创建第二内核服务器的专用通道,并依据该专用通道启动浏览器;
所述专用通道包括相应的通信端口;
所述第二对象获取模块包括:
获取指令发送子模块,用于向所述相应内核服务器的专用通道的通信端口发送获取文档对象的获取指令;
文档对象接收子模块,用于接收所述相应内核服务器的专用通道的通信端口返回的文档对象。
优选的,所述系统还包括:
监控装置,用于在浏览器启动后,监控当前浏览器页面的标签的切换;
发送装置,用于在监控到当前浏览器页面的标签发生了切换时,向接收器发送一条http数据,该条http数据中携带有最新标签的ID;
接收器,用于在接收到该条http数据时,向解析子模块发送消息通知;
所述第二对象获取模块还包括:
解析子模块,用于在接收到该消息通知时,通过解析该条http数据获得最新标签的ID;
切换指令发送子模块,用于向所述相应内核服务器的专用通道的通信端口发送切换标签ID的文档对象的切换指令,该切换指令中携带有最新标签的ID;
最新文档对象接收子模块,用于接收所述相应内核服务器的专用通道的通信端口返回的最新标签的文档对象。
优选的,所述页面加载装置包括:
子线程判断模块,用于采用第一子线程加载当前浏览器页面;
回传判断模块,用于延迟判断当前浏览器页面是否一直处于加载中;
关闭模块,用于在延迟判断当前浏览器页面是否一直处于加载中时,关闭当前浏览器页面及相应的子线程,并采用第二子线程进行后续浏览器页面的加载。
与现有技术相比,本申请具有以下优点:
本申请可用于至少包括第一内核的第二内核的双核或多核浏览器,用于通过识别来获取不同内核的文档对象,利用文档对象模拟用户操作,实现双核或多核浏览器测试的自动化,提高测试的便捷性和测试效率。
附图说明
图1是本申请一种浏览器的测试方法实施例1的流程图;
图2是本申请一种浏览器的测试方法实施例2的流程图;
图3是本申请一种浏览器的测试方法实施例3的流程图;
图4是本申请一种浏览器的测试方法实施例4的流程图;
图5是本申请一种浏览器的测试系统实施例的结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请一种浏览器的测试方法实施例1的流程图,所述浏览器至少包括第一内核和第二内核,具体可以包括:
步骤101、加载当前浏览器页面;
步骤102、识别当前浏览器页面的内核;
步骤103、依据当前浏览器页面的内核,获取相应的文档对象;
步骤104、依据当前浏览器页面的文档对象模拟用户的操作。
本申请可用于WebKit+Trident、Gecko+Trident等双核或多核浏览器,用于通过识别来获取不同内核的文档对象,利用文档对象模拟用户操作,实现双核浏览器网测试的自动化,提高测试效率。
本申请可以基于当前浏览器页面的控件,提供如下识别当前浏览器页面的内核的方案:
方案一、
所述识别当前浏览器页面的内核的步骤,具体可以包括:
步骤A1、采用查找标题的方式得到当前浏览器窗口的句柄;
步骤A2、依据当前浏览器窗口的句柄获取当前浏览器窗口相对屏幕的左上角坐标,进而得到当前浏览器页面的句柄;
当前浏览器窗口相对屏幕的位置具有四个坐标:左上角坐标、左下角坐标、右上角坐标和右下角坐标,为得到当前浏览器页面的句柄,本申请仅选取左上角坐标。在左上角坐标的基础上,通常横向纵向加180个像素,获取相应点的句柄,即可得到当前浏览器页面的句柄。
步骤A3、依据当前浏览器页面的句柄类名,识别当前浏览器页面的内核。
在实际中,如果当前浏览器页面的句柄类名是“Chrome_RenderWidgetHostHWND”,则认为当前浏览器页面为极速页面,于是可将当前浏览器页面的内核识别为WebKit内核;如果当前浏览器页面的句柄类名是“Internet Explorer_Server”,则认为当前浏览器页面为IE页面,于是将当前浏览器页面的内核识别为Trident内核;如果当前浏览器页面的句柄类名为“MozillaWindowClass”,则说明是Firefox浏览器,而Firefox浏览器对应的是Gecko内核,
方案二、
所述识别当前浏览器页面的内核的步骤,具体可以包括:
步骤B1、采用查找标题的方式得到当前浏览器窗口的句柄;
步骤B2、依据当前浏览器窗口的句柄获取当前浏览器窗口的进程;
步骤B3、枚举当前浏览器窗口的进程的子进程;
步骤B4、依据当前浏览器窗口的进程的子进程的类属性,识别当前浏览器页面的内核。
在实际中,可以查找当前浏览器窗口的进程的子进程的类属性,如果找到“Chrome_RenderWidgetHostHWND”这个类,认为当前浏览器页面为极速页面,于是可将当前浏览器页面的内核识别为WebKit内核;如果找到“Internet Explorer_Server”,则认为当前浏览器页面为IE页面,于是将当前浏览器页面的内核识别为Trident内核;如果找到“MozillaWindowClass”,则认为当前浏览器页面为Firefox页面,于是将当前浏览器页面的内核识别为Gecko内核。
以上对识别当前浏览器页面的内核的几种方案进行了详细介绍,可以理解,本领域技术人员根据需要结合使用上述几种方案,或者,使用其中任一种方案。另外,对于内核类别的识别,是不限于上述两种方案的,随着技术的发展,其它用于内核类别识别的方法都涵盖在本申请的范围之中。
DOM是Document Object Model文档对象模型的缩写。根据W3C DOM规范,DOM是一种与浏览器,平台,语言无关的接口,使得可以访问页面其他的标准组件,使得可以解决各种不同游览器之间的兼容问题,使得允许访问和操作HTML页面中的每一个单独的元素。
所有的浏览器都执行了DOM规范,且文件对象存在于各种操作系统中。例如,在Windows系统中,文件(Document)对象是Windows对象的一部分,可通过window.document属性对其进行访问。每个载入浏览器的HTML(超文本标记语言,Hypertext Markup Language)文档都会成为Document对象。运用Document对象可以从脚本中对HTML页面中的所有元素进行访问,比如:点击click()、查找指定id的元素getElementById()等用户操作。
在本申请的一种优选实施例中,所述依据当前浏览器页面的内核,获取相应的文档对象的步骤,具体可以包括:
如果当前浏览器页面的内核为第一内核,则使用IHTMLDocument2接口获取相应的文件对象;如果当前浏览器页面的内核为第二内核,则依据相应内核服务器的专用通道获取相应的文件对象。在本申请实施例中,优选的是,所述第一内核为Trident内核,所述第二内核为WebKit或Gecko。由于使用微软开放的IHTMLDocument2接口获取浏览器页面的文档对象,为本领域的公知技术,故在此不作赘述。
在具体实现中,不同的浏览器测试用例可以使用上述获取的当前浏览器页面的文档对象来模拟不同的用户操作。假设要测试双核浏览器的稳定性,则可以把稳定性测试用例搭建到互联网页面上。
例如,启动浏览器、打开百度页面后获取到当前页面的document对象,然后点击“新闻”链接,相应的代码如下:
links=ieDoc.getElementsByTagName(′a′)
for(i=0;i<=links.length;i++)
{if(links[i].innerText==″登录″){
links[i].click())}}
当用户点击【测试】按钮时,就会调用上述获取的当前浏览器页面的文档对象来执行所设计好的操作,比如:疯狂的打开一些页面、看视频、关闭标签等操作。最后根据打开的页面数量和崩溃数,给用户一个分值,说明其浏览器的稳定性。
在本申请的一种优选实施例中,所述加载当前浏览器页面的步骤,可以进一步包括:
采用第一子线程加载当前浏览器页面,并延迟判断当前浏览器页面是否一直处于加载中,若是,则关闭当前浏览器页面及相应的子线程,并采用第二子线程进行后续浏览器页面的加载。
本实施例采用多线程的方法,也即使用子线程进行了回传判断,延迟判断网页是否一直加载中,如果是的话就关闭当前浏览器页面及相应的子线程,并采用其它子线程进行后续浏览器页面的加载;由于关闭当前浏览器页面及相应的子线程可以重新初始化第二内核服务器而继续使用,避免第二内核服务器的阻塞,提高测试效率。
总之,本申请可以在360极速浏览器等WebKit+Trident、Gecko+Trident等双核浏览器或多核浏览器中获取当前浏览器页面的文档对象,后期使用当前浏览器页面的文档对象来模拟不同的用户操作结合压力测试等各种浏览器测试方法,计算在测试期间出现的卡死、崩溃概率等参数,从而得到浏览器性能的相关数据。
参照图2,示出了本申请一种浏览器的测试方法实施例2的流程图,所述浏览器至少包括第一内核和第二内核,具体可以包括:
步骤201、创建第二内核服务器的专用通道,并依据该专用通道启动浏览器;
本申请实施例中,所述第二内核可以为WebKit或Gecko;创建Gecko或WebKit内核服务器的专用通道,并依据该专用通道启动浏览器,是为了创建操作Gecko或WebKit内核服务器的对象,从而为下一步获取相应内核的文档对象做好准备。
例如,WebKit服务器的一个典型示例为chromedriver服务器,其通常应用于chrome浏览器中。在实际中,启动chromedriver.exe创建通信端口,就可以给通信端口发送启动命令来启动浏览器。
步骤202、加载当前浏览器页面;
在实际中,在依据该专用通道启动浏览器后,首次加载浏览器页面可依据相应浏览器的通信端口来完成。以后的浏览器页面加载可通过点击连接、地址栏打开URL(统一资源定位符,Uniform Resource Locator)的方式实现,本申请对具体的加载浏览器页面的方式不加以限制。
步骤203、识别当前浏览器页面的内核;
步骤204、如果当前浏览器页面的内核为第一内核,则使用IHTMLDocument2接口获取相应的文件对象;
步骤205、所述专用通道具体可以包括相应的通信端口;如果当前浏览器页面的内核为第二内核,则向所述相应内核服务器的专用通道的通信端口发送获取文件对象的获取指令,并接收所述相应内核服务器的专用通道的通信端口返回的文档对象;
在实际中,利用chromedriver这一谷歌内部人员开发的接口可获取浏览器页面的文档对象。具体到本申请,可通过交互得到所述文档对象,相应地,所述依据所述WebKit服务器获取相应的文档对象的步骤具体可以包括:
步骤C1、向所述WebKit内核服务器的专用通道的通信端口发送获取文档对象的获取指令;
步骤C2、接收所述WebKit内核服务器的专用通道的通信端口返回的文档对象。
步骤206、依据当前浏览器页面的文档对象模拟用户的操作。
参照图3,示出了本申请一种浏览器的测试方法实施例3的流程图,具体可以包括:
步骤301、创建第二内核服务器的专用通道,并依据该专用通道启动浏览器;
步骤302、在浏览器启动后,如果监控到当前浏览器页面的标签发生了切换,则向接收器发送一条http数据,该条http数据中携带有最新标签的ID;
http的中文名称为,超文本传送协议,英文全称为hypertext transportprotocol;ID的中文名称为身份标识,英文全称为Identity。
步骤303、接收器在接收到该条http数据时,发送消息通知;
步骤304、加载当前浏览器页面;
步骤305、识别当前浏览器页面的内核;
步骤306、如果当前浏览器页面的内核为第一内核,则使用IHTMLDocument2接口获取相应的文件对象;
步骤307、所述专用通道具体可以包括相应的通信端口;如果当前浏览器页面的内核为第二内核,则向所述相应内核服务器的专用通道的通信端口发送获取文件对象的获取指令,并接收所述相应内核服务器的专用通道的通信端口返回的文档对象;
步骤308、在接收到该消息通知时,通过解析该条http数据获得最新标签的ID;
步骤309、向第二内核服务器的专用通道的通信端口发送切换标签ID的文档对象的切换指令,该切换指令中携带有最新标签的ID;
步骤310、接收第二内核服务器的专用通道的通信端口返回的最新标签的文档对象;
步骤311、依据当前浏览器页面的文档对象模拟用户的操作。
由于在同一时刻WebKit内核服务器的chromedriver接口只能连接一个浏览器页面,这样,即使当前标签已被切换,其连接的还是之前的标签。因此,为了降低获取文档对象的错误率,本申请实施例在监控到当前浏览器页面的标签发生了切换时,会通过http数据将最新标签的ID进行传递,从而基于与操作WebKit内核服务器的对象的交互获取最新标签的文档对象。
在具体实现中,所述操作WebKit内核服务器的对象可以使用driver.switch_to_window(id)方法,获取到最新标签的文档对象,其中,id为最新标签的id。
对于Gecko内核服务器,由于其与WebKit内核服务器的特性相同,故在此不作赘述,相互参照即可。
参照图4,示出了本申请一种浏览器的测试方法实施例4的流程图,具体可以包括:
步骤401、创建Gecko或WebKit内核服务器的专用通道,并依据该专用通道启动浏览器;
步骤402、采用第一子线程加载当前浏览器页面;
步骤403、延迟判断当前浏览器页面是否一直处于加载中,若是,则执行步骤404,否则,执行步骤405;
步骤404、关闭当前浏览器页面及相应的子线程,并采用第二子线程进行后续浏览器页面的加载,并返回执行步骤403;
步骤405、识别当前浏览器页面的内核;
步骤406、如果当前浏览器页面的内核为Trident,则使用IHTMLDocument2接口获取相应的文档对象;
步骤407、如果当前浏览器页面的内核为WebKit或Gecko,则依据相应内核服务器的专用通道获取相应的文件对象;
步骤408、依据当前浏览器页面的文档对象模拟用户的操作。
WebKit或Gecko内核服务器对每个网页的加载都进行了回传判断。以WebKit内核服务器为例,如果网页因为某种原因一直加载中,没有回传,就会导致chromedriver端口被占用和阻塞,不能继续使用WebKit内核服务器,不能获取WebKit内核的文档对象,从而降低了测试效率。
针对上述情形,本实施例采用多线程的方法,也即使用子线程进行了回传判断,延迟判断网页是否一直加载中,如果是的话就关闭当前浏览器页面及相应的子线程,并采用其它子线程进行后续浏览器页面的加载;由于关闭当前浏览器页面及相应的子线程可以重新初始化WebKit内核服务器而继续使用,避免WebKit内核服务器的阻塞,提高测试效率。这里的延迟是指判断相对于加载的延迟,可由本领域技术人员根据实际需求确定,例如,1ms,0.01ms等,本申请对具体的延迟数值不加以限制。
参照图5,示出了本申请一种浏览器的测试系统实施例的结构图,所述浏览器至少包括第一内核和第二内核,具体可以包括:
页面加载装置501,用于加载当前浏览器页面;
内核识别装置502,用于识别当前浏览器页面的内核;
对象获取装置503,用于依据当前浏览器页面的内核,获取相应的文档对象;及
测试装置504,用于依据当前浏览器页面的文档对象模拟用户的操作。
在本申请的一种优选实施例中,所述内核识别装置403具体可以包括:
第一窗口句柄获取模块,用于采用查找标题的方式得到当前浏览器窗口的句柄;
页面句柄获取模块,用于依据当前浏览器窗口的句柄获取当前浏览器窗口相对屏幕的左上角坐标,进而得到当前浏览器页面的句柄;及
第一识别模块,用于依据当前浏览器页面的句柄类名,识别当前浏览器页面的内核。
在本申请的另一种优选实施例中,所述内核识别装置403可以进一步包括:
第二窗口句柄获取模块,用于采用查找标题的方式得到当前浏览器窗口的句柄;
进程获取模块,用于依据当前浏览器窗口的句柄获取当前浏览器窗口的进程;
子进程枚举模块,用于枚举当前浏览器窗口的进程的子进程;
第二识别模块,用于依据当前浏览器窗口的进程的子进程的类属性,识别当前浏览器页面的内核。
在本申请实施例中,优选的是,所述对象获取装置404具体可以包括:
第一对象获取模块,用于在当前浏览器页面的内核为第一内核时,使用IHTMLDocument2接口获取相应的文件对象;及
第二对象获取模块,用于在当前浏览器页面的内核为第二内核时,依据相应内核服务器的专用通道获取相应的文件对象。
在本申请的一种优选实施例中,所述装置还可以包括:
浏览器启动装置,用于在加载当前浏览器页面前,创建第二内核服务器的专用通道,并依据该专用通道启动浏览器;
所述专用通道可以包括相应的通信端口;
此时,所述第二对象获取模块具体可以包括:
获取指令发送子模块,用于向所述相应内核服务器的专用通道的通信端口发送获取文档对象的获取指令;
文档对象接收子模块,用于接收所述相应内核服务器的专用通道的通信端口返回的文档对象。
在本申请的一种优选实施例中,所述系统还可以包括:
监控装置,用于在浏览器启动后,监控当前浏览器页面的标签的切换;
发送装置,用于在监控到当前浏览器页面的标签发生了切换时,向接收器发送一条http数据,该条http数据中携带有最新标签的ID;
接收器,用于在接收到该条http数据时,向解析子模块发送消息通知;
此时,所述第二对象获取模块还可以包括:
解析子模块,用于在接收到该消息通知时,通过解析该条http数据获得最新标签的ID;
切换指令发送子模块,用于向所述相应内核服务器的专用通道的通信端口发送切换标签ID的文档对象的切换指令,该切换指令中携带有最新标签的ID;
最新文档对象接收子模块,用于接收所述相应内核服务器的专用通道的通信端口返回的最新标签的文档对象。
在本申请的一种优选实施例中,所述页面加载装置402可以进一步包括:
子线程判断模块,用于采用第一子线程加载当前浏览器页面;
回传判断模块,用于延迟判断当前浏览器页面是否一直处于加载中;
关闭模块,用于在延迟判断当前浏览器页面是否一直处于加载中时,关闭当前浏览器页面及相应的子线程,并采用第二子线程进行后续浏览器页面的加载。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本申请所提供的一种浏览器的测试方法和系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (14)

1.一种浏览器的测试方法,所述浏览器至少包括第一内核和第二内核,其特征在于,包括:
加载当前浏览器页面;
识别当前浏览器页面的内核;
依据当前浏览器页面的内核,获取相应的文档对象;
依据当前浏览器页面的文档对象模拟用户的操作。
2.如权利要求1所述的方法,其特征在于,所述识别当前浏览器页面的内核的步骤,包括:
采用查找标题的方式得到当前浏览器窗口的句柄;
依据当前浏览器窗口的句柄获取当前浏览器窗口相对屏幕的左上角坐标,进而得到当前浏览器页面的句柄;
依据当前浏览器页面的句柄类名,识别当前浏览器页面的内核。
3.如权利要求1所述的方法,其特征在于,所述识别当前浏览器页面的内核的步骤,包括:
采用查找标题的方式得到当前浏览器窗口的句柄;
依据当前浏览器窗口的句柄获取当前浏览器窗口的进程;
枚举当前浏览器窗口的进程的子进程;
依据当前浏览器窗口的进程的子进程的类属性,识别当前浏览器页面的内核。
4.如权利要求1所述的方法,其特征在于,所述依据当前浏览器页面的内核,获取相应的文档对象的步骤,包括:
如果当前浏览器页面的内核为第一内核,则使用IHTMLDocument2接口获取相应的文件对象;如果当前浏览器页面的内核为第二内核,则依据相应内核服务器的专用通道获取相应的文件对象。
5.如权利要求4所述的方法,其特征在于,还包括:
在加载当前浏览器页面前,创建第二内核服务器的专用通道,并依据该专用通道启动浏览器;
所述专用通道包括相应的通信端口;
所述依据相应内核服务器的专用通道获取相应的文件对象的步骤包括:
向所述相应内核服务器的专用通道的通信端口发送获取文件对象的获取指令;
接收所述相应内核服务器的专用通道的通信端口返回的文档对象。
6.如权利要求5所述的方法,其特征在于,还包括:
在浏览器启动后,如果监控到当前浏览器页面的标签发生了切换,则向接收器发送一条http数据,该条http数据中携带有最新标签的ID;
接收器在接收到该条http数据时,发送消息通知;
所述依据相应内核服务器的专用通道获取相应的文件对象的步骤还包括:
在接收到该消息通知时,通过解析该条http数据获得最新标签的ID;
向所述相应内核服务器的专用通道的通信端口发送切换标签ID的文档对象的切换指令,该切换指令中携带有最新标签的ID;
接收所述相应内核服务器的专用通道的通信端口返回的最新标签的文档对象。
7.如权利要求1所述的方法,其特征在于,所述加载当前浏览器页面的步骤,包括:
采用第一子线程加载当前浏览器页面,并延迟判断当前浏览器页面是否一直处于加载中,若是,则关闭当前浏览器页面及相应的子线程,并采用第二子线程进行后续浏览器页面的加载。
8.一种浏览器的测试系统,所述浏览器至少包括第一内核和第二内核,其特征在于,包括:
页面加载装置,用于加载当前浏览器页面;
内核识别装置,用于识别当前浏览器页面的内核;
对象获取装置,用于依据当前浏览器页面的内核,获取相应的文档对象;及
测试装置,用于依据当前浏览器页面的文档对象模拟用户的操作。
9.如权利要求8所述的系统,其特征在于,所述内核识别装置包括:
第一窗口句柄获取模块,用于采用查找标题的方式得到当前浏览器窗口的句柄;
页面句柄获取模块,用于依据当前浏览器窗口的句柄获取当前浏览器窗口相对屏幕的左上角坐标,进而得到当前浏览器页面的句柄;及
第一识别模块,用于依据当前浏览器页面的句柄类名,识别当前浏览器页面的内核。
10.如权利要求8所述的系统,其特征在于,所述内核识别装置包括:
第二窗口句柄获取模块,用于采用查找标题的方式得到当前浏览器窗口的句柄;
进程获取模块,用于依据当前浏览器窗口的句柄获取当前浏览器窗口的进程;
子进程枚举模块,用于枚举当前浏览器窗口的进程的子进程;
第二识别模块,用于依据当前浏览器窗口的进程的子进程的类属性,识别当前浏览器页面的内核。
11.如权利要求8所述的系统,其特征在于,所述对象获取装置包括:
第一对象获取模块,用于在当前浏览器页面的内核为第一内核时,使用IHTMLDocument2接口获取相应的文件对象;及
第二对象获取模块,用于在当前浏览器页面的内核为第二内核时,依据相应内核服务器的专用通道获取相应的文件对象。
12.如权利要求11所述的系统,其特征在于,还包括:
浏览器启动装置,用于在加载当前浏览器页面前,创建第二内核服务器的专用通道,并依据该专用通道启动浏览器;
所述专用通道包括相应的通信端口;
所述第二对象获取模块包括:
获取指令发送子模块,用于向所述相应内核服务器的专用通道的通信端口发送获取文档对象的获取指令;
文档对象接收子模块,用于接收所述相应内核服务器的专用通道的通信端口返回的文档对象。
13.如权利要求12所述的系统,其特征在于,还包括:
监控装置,用于在浏览器启动后,监控当前浏览器页面的标签的切换;
发送装置,用于在监控到当前浏览器页面的标签发生了切换时,向接收器发送一条http数据,该条http数据中携带有最新标签的ID;
接收器,用于在接收到该条http数据时,向解析子模块发送消息通知;
所述第二对象获取模块还包括:
解析子模块,用于在接收到该消息通知时,通过解析该条http数据获得最新标签的ID;
切换指令发送子模块,用于向所述相应内核服务器的专用通道的通信端口发送切换标签ID的文档对象的切换指令,该切换指令中携带有最新标签的ID;
最新文档对象接收子模块,用于接收所述相应内核服务器的专用通道的通信端口返回的最新标签的文档对象。
14.如权利要求8所述的系统,其特征在于,所述页面加载装置包括:
子线程判断模块,用于采用第一子线程加载当前浏览器页面;
回传判断模块,用于延迟判断当前浏览器页面是否一直处于加载中;
关闭模块,用于在延迟判断当前浏览器页面是否一直处于加载中时,关闭当前浏览器页面及相应的子线程,并采用第二子线程进行后续浏览器页面的加载。
CN201210089564.8A 2012-03-29 2012-03-29 一种浏览器的测试方法和系统 Expired - Fee Related CN102662837B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201210089564.8A CN102662837B (zh) 2012-03-29 2012-03-29 一种浏览器的测试方法和系统
CN201510142407.2A CN104714889B (zh) 2012-03-29 2012-03-29 一种浏览器的测试方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210089564.8A CN102662837B (zh) 2012-03-29 2012-03-29 一种浏览器的测试方法和系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201510142407.2A Division CN104714889B (zh) 2012-03-29 2012-03-29 一种浏览器的测试方法和系统

Publications (2)

Publication Number Publication Date
CN102662837A true CN102662837A (zh) 2012-09-12
CN102662837B CN102662837B (zh) 2015-04-29

Family

ID=46772334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210089564.8A Expired - Fee Related CN102662837B (zh) 2012-03-29 2012-03-29 一种浏览器的测试方法和系统

Country Status (1)

Country Link
CN (1) CN102662837B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981903A (zh) * 2012-12-10 2013-03-20 北京奇虎科技有限公司 一种多核浏览器中进程复用的方法及其多核浏览器
CN103019846A (zh) * 2012-12-10 2013-04-03 北京奇虎科技有限公司 用于多核浏览器的进程复用方法和多核浏览器
CN103019817A (zh) * 2012-11-30 2013-04-03 北京奇虎科技有限公司 一种用于页面交互的方法与装置
CN103034532A (zh) * 2012-12-10 2013-04-10 北京奇虎科技有限公司 一种ie浏览器中实现进程复用的方法及浏览器
CN103034535A (zh) * 2012-12-10 2013-04-10 北京奇虎科技有限公司 用于ie浏览器的进程复用方法和ie浏览器
CN103713910A (zh) * 2012-09-28 2014-04-09 腾讯科技(深圳)有限公司 一种检测多核浏览器内核的方法和装置
CN104699604A (zh) * 2015-02-28 2015-06-10 百度在线网络技术(北京)有限公司 用于测试基于定制浏览内核的安卓应用的方法及装置
CN113742550A (zh) * 2021-08-20 2021-12-03 广州市易工品科技有限公司 基于浏览器的数据获取方法、装置和系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104714889B (zh) * 2012-03-29 2019-04-02 北京奇虎科技有限公司 一种浏览器的测试方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070156768A1 (en) * 2005-12-22 2007-07-05 Xerox Corporation System and method for managing dynamic document references
CN101655863A (zh) * 2009-04-24 2010-02-24 北京搜狗科技发展有限公司 在浏览器中加载网页的方法及浏览器
CN101909018A (zh) * 2009-06-05 2010-12-08 潘晓丰 根据用户浏览网页返回即时通信群组的方法与系统
CN102222036A (zh) * 2010-04-14 2011-10-19 阿里巴巴集团控股有限公司 一种自动化测试方法和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070156768A1 (en) * 2005-12-22 2007-07-05 Xerox Corporation System and method for managing dynamic document references
CN101655863A (zh) * 2009-04-24 2010-02-24 北京搜狗科技发展有限公司 在浏览器中加载网页的方法及浏览器
CN101909018A (zh) * 2009-06-05 2010-12-08 潘晓丰 根据用户浏览网页返回即时通信群组的方法与系统
CN102222036A (zh) * 2010-04-14 2011-10-19 阿里巴巴集团控股有限公司 一种自动化测试方法和设备

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103713910A (zh) * 2012-09-28 2014-04-09 腾讯科技(深圳)有限公司 一种检测多核浏览器内核的方法和装置
CN103713910B (zh) * 2012-09-28 2018-03-02 腾讯科技(深圳)有限公司 一种检测多核浏览器内核的方法和装置
CN103019817A (zh) * 2012-11-30 2013-04-03 北京奇虎科技有限公司 一种用于页面交互的方法与装置
CN103019817B (zh) * 2012-11-30 2015-10-14 北京奇虎科技有限公司 一种用于页面交互的方法与装置
CN103019846B (zh) * 2012-12-10 2016-05-04 北京奇虎科技有限公司 用于多核浏览器的进程复用方法和多核浏览器
CN103034535A (zh) * 2012-12-10 2013-04-10 北京奇虎科技有限公司 用于ie浏览器的进程复用方法和ie浏览器
CN103034532A (zh) * 2012-12-10 2013-04-10 北京奇虎科技有限公司 一种ie浏览器中实现进程复用的方法及浏览器
CN102981903B (zh) * 2012-12-10 2016-03-30 北京奇虎科技有限公司 一种多核浏览器中进程复用的方法及其多核浏览器
CN102981903A (zh) * 2012-12-10 2013-03-20 北京奇虎科技有限公司 一种多核浏览器中进程复用的方法及其多核浏览器
CN103034532B (zh) * 2012-12-10 2016-09-28 北京奇虎科技有限公司 一种ie浏览器中实现进程复用的方法及浏览器
CN103019846A (zh) * 2012-12-10 2013-04-03 北京奇虎科技有限公司 用于多核浏览器的进程复用方法和多核浏览器
CN104699604A (zh) * 2015-02-28 2015-06-10 百度在线网络技术(北京)有限公司 用于测试基于定制浏览内核的安卓应用的方法及装置
CN104699604B (zh) * 2015-02-28 2017-11-07 百度在线网络技术(北京)有限公司 用于测试基于定制浏览内核的安卓应用的方法及装置
CN113742550A (zh) * 2021-08-20 2021-12-03 广州市易工品科技有限公司 基于浏览器的数据获取方法、装置和系统
CN113742550B (zh) * 2021-08-20 2024-04-19 广州市易工品科技有限公司 基于浏览器的数据获取方法、装置和系统

Also Published As

Publication number Publication date
CN102662837B (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
CN102662837B (zh) 一种浏览器的测试方法和系统
TWI690812B (zh) 頁面元件動態佈局方法、裝置及客戶端
CN101876897A (zh) 用于在Web浏览器上处理Widget的系统和方法
EP2648388B1 (en) Method, system, and device for displaying page
US20130290898A1 (en) Method for presenting prompt message, terminal and server
US20170032494A1 (en) Methods for displaying a webpage fragment on a desktop and systems for taking a snapshot of webpage fragment for displaying on a desktop
CN103678307A (zh) 页面显示方法及客户端
CN103383687A (zh) 一种页面处理方法和装置
CN104123125A (zh) 网页资源的获取方法及装置
CN102298599A (zh) 离线浏览网页方法及其系统
CN106874271A (zh) 一种将pc网页转换为移动终端网页的方法及系统
CN104182430A (zh) 文本信息中的图片显示方法及装置
CN102819553B (zh) 一种进行页面交互的方法及装置
CN103581232A (zh) web页面传输方法、web页面显示装置及包含该装置的系统
CN103559097B (zh) 一种浏览器中进程间通信的方法、装置和浏览器
CN103678343A (zh) 提示网页加载进度的方法和装置
CN103258058A (zh) 页面展现方法、系统及浏览器
CN104361130B (zh) 一种在网页中搜索局域网或指定网段内设备的方法
TWI519980B (zh) 網頁顯示方法和裝置及電腦可讀取儲存介質
JP2009259230A (ja) 情報サービス提供方法およびサーバ
CN105528369A (zh) 网页转码方法、装置以及服务器
CN110674444B (zh) 一种动态网页下载的方法及终端
JP2011043924A (ja) Web行動履歴取得システム、Web行動履歴取得方法、ゲートウェイ装置、及びプログラム
CN103488508B (zh) 一种浏览器的工作方法、浏览器及终端设备
US10095791B2 (en) Information search method and apparatus

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: QIZHI SOFTWARE (BEIJING) CO., LTD.

Effective date: 20121025

Owner name: BEIJING QIHU TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: QIZHI SOFTWARE (BEIJING) CO., LTD.

Effective date: 20121025

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100016 CHAOYANG, BEIJING TO: 100088 XICHENG, BEIJING

TA01 Transfer of patent application right

Effective date of registration: 20121025

Address after: 100088 Beijing city Xicheng District xinjiekouwai Street 28, block D room 112 (Desheng Park)

Applicant after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Applicant after: Qizhi software (Beijing) Co.,Ltd.

Address before: The 4 layer 100016 unit of Beijing city Chaoyang District Jiuxianqiao Road No. 14 Building C

Applicant before: Qizhi software (Beijing) Co.,Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220725

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150429