为测试操作添加事件—Selenium自动化测试指南(8)

发表于:2013-9-04 11:19

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

 作者:赵卓    来源:51Testing软件测试网

  执行结果如图5-70所示。

  

图5-70  执行结果

  5.10.3  Timeouts()

  Timeouts()方法会获得Timeouts对象,Timeouts对象包含以下3个方法。

  ImplicitlyWait(),设置脚本在查找元素时的最大等待时间,例如FindElement()和Find Elements()等方法的超时时间。

  SetPageLoadTimeout():页面操作超时时间,例如页面进行跳转或刷新的最大等待时间。例如,使用Navigation对象的各个方法,以及在页面执行某操作后发生跳转或刷新)。

  SetScriptTimeout(),设置脚本异步执行的超时时间。

  示例代码如程序清单5-74或程序清单5-75所示。

  程序清单5-74 C#代码

IWebDriver driver = new FirefoxDriver();
ITimeouts timeouts = driver.Manage().Timeouts();
//将脚本在查找元素时的最大等待时间设置为0小时0分30秒
timeouts.ImplicitlyWait(new TimeSpan(0, 0, 30));
//将页面跳转或刷新的超时时间设置为0小时0分30秒
timeouts.SetPageLoadTimeout(new TimeSpan(0, 0, 30));
//将脚本异步执行的超时时间设置为0小时0分30秒
timeouts.SetScriptTimeout(new TimeSpan(0, 0, 30));

  程序清单5-75 Java代码

WebDriver driver = new FirefoxDriver();
Timeouts timeouts = driver.manage().timeouts();
//将脚本在查找元素时的最大等待时间设置为30,单位为秒
timeouts.implicitlyWait(30, java.util.concurrent.TimeUnit.SECONDS);
//将页面跳转或刷新的超时时间设置为30,单位为秒
timeouts.pageLoadTimeout(30, java.util.concurrent.TimeUnit.SECONDS);
//将脚本异步执行的超时时间设置为为30,单位为秒
timeouts.setScriptTimeout(30, java.util.concurrent.TimeUnit.SECONDS);

  5.11  为测试操作添加事件

  如果想要在执行测试操作时执行自定义的处理或者进行截图,可以使用EventFiring- WebDriver。它可以为各个操作添加事件,并能对测试进行截图。

  假设现在要对各类操作执行行以下自定义处理。

  (1)在执行打开网页的的操作时,需要分别记录打开前和打开后的URL地址。

  (2)在查找某个页面元素时,查找之前和之后都需要记录查找条件。

  (3)在对页面元素进行单击操作时,单击前需要记录元素的查找条件,单击后记录URL地址。

  (4)在对页面元素的值进行更改时,需要分别记录更改前的值和更改后的值。

  (5)在发生异常的时候,需要进行截图,将截图文件保存至D:\,用当前日期命令截图文件。

  要实现以上的自定义处理,可以通过EventFiringWebDriver轻松实现。

  因为事件机制的不同,在C#和Java中使用EventFiringWebDriver的方式各有不同,下面将分别进行介绍。

52/5<12345>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号