收集WebDriver的执行命令和参数信息

发表于:2013-2-16 11:04

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:kenneth    来源:51Testing软件测试网采编

  最近在研究Selenium WebDriver代码,希望可以开发出一个针对WebDriver的类似LoggingSelenium 1.X的日志结果框架。

  现在有了一点进步,先分享出来,等完成自己的日志框架之后,再着手建立开源、免费项目。

  WebDriver的浏览器的几个实现比如InternetExplorerDriver,FirefoxDriver等都继承RemoteWebDriver类,

  其中的 protected Response execute(String driverCommand, Map<String, ?> parameters)方法是执行所有的命令的

  必经执行入口。如果想收集执行命令信息和相应参数,就需要对该方法进行额外的小处理。本文以IE浏览器为例,首先

  创建一个LoggingInternetExplorerDriver,它继承InternetExplorerDriver,并重写protected Response execute(String driverCommand, Map<String, ?> parameters)方法,

  增加对执行命令和参数的处理,本文只简单的打印出命令及其参数。

  LoggingInternetExplorerDriver代码例子:

packageorg.openqa.selenium.ie;importjava.util.Map;importjava.util.Map.Entry; importorg.openqa.selenium.remote.DesiredCapabilities;importorg.openqa.selenium.remote.Response;publicclassLoggingInternetExplorerDriverextendsInternetExplorerDriver{publicLoggingInternetExplorerDriver(DesiredCapabilities ieCapabilities){super(ieCapabilities);}protectedResponse execute(StringdriverCommand, Map<String,?>parameters){Response s=null;System.err.print("\n正在执行的命令为:driverCommand="+driverCommand+" 所使用的参数为parameters=");for(Entry<String,?>key:parameters.entrySet()){System.out.print(key.getKey()+"="+key.getValue()+"; ");} try{s=super.execute(driverCommand, parameters);}catch(Exceptione){e.printStackTrace();}returns; }}

  编写测试代码的例子,需要注意的是,我们使用的是LoggingInternetExplorerDriver,而不是InternetExplorerDriver。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号