当前位置: 首页 > 知识库问答 >
问题:

PhpUnit Selenium测试的错误处理

郭乐湛
2023-03-14

我有一套硒测试。例如,有时“断言声明”会失败。在某些情况下,这可能是因为有人破坏了某些东西,而用户界面点击顺序的结果是一个错误,导致网站的错误页面被显示。

如何检查是否每一次失败都发生了这种情况,而不必在任何地方实现对以下方法的调用?

    $isErrorPage = $selenium->isElementPresent("id=siteErrorPage");
    if ($isErrorPage){
        $html = $selenium->getHtmlSource();
        //send the $html to devs, log it, etc.
    }

目的是简单地通过电子邮件发送显示页面的html源,如果该页面被证明是一个错误页面。

共有1个答案

黄景胜
2023-03-14

看起来您必须扩展PHPUnit_Extensions_Selenium2TestCase类,并重载onNotSuccessfulTest()。在其中添加代码,并使所有测试用例扩展新类,而不是PHPUnit_Extensions_Selenium2TestCase。确保在扩展版本中调用parent::onNotSuccessfulTest()。

我还没有测试过这个,但是通过研究代码,这应该能得到你想要的。看起来停止()命令是在会话__destruct()上发送的,所以当您尝试获取屏幕截图时,会话应该仍然是活动的。

 类似资料:
  • 错误码分析 (OTG-ERR-001) 栈追踪分析 (OTG-ERR-002)

  • 我们经常会看到很多程序员大部分的"编程"时间都花费在检查bug和修复bug上。无论你是在编写修改代码还是重构系统,几乎都是花费大量的时间在进行故障排除和测试,外界都觉得我们程序员是设计师,能够把一个系统从无做到有,是一项很伟大的工作,而且是相当有趣的工作,但事实上我们每天都是徘徊在排错、调试、测试之间。当然如果你有良好的习惯和技术方案来直面这些问题,那么你就有可能将排错时间减到最少,而尽可能的将时

  • Go 没有像 Java 和 .NET 那样的 try/catch 异常机制:不能执行抛异常操作。但是有一套 defer-panic-and-recover 机制(参见 13.2-13.3 节)。 Go 的设计者觉得 try/catch 机制的使用太泛滥了,而且从底层向更高的层级抛异常太耗费资源。他们给 Go 设计的机制也可以 “捕捉” 异常,但是更轻量,并且只应该作为(处理错误的)最后的手段。 G

  • python AWS boto3 s3 put_对象应该如何处理/测试错误?例如: 可能出现的错误是否记录在某个地方?下面的页面是否是正确的留档页面(似乎是为客户端,而不是),如果是,错误记录在哪里? http://boto3.readthedocs.io/en/latest/reference/services/s3.html#S3.Client.put_object 像不存在的bucket这样

  • 詹金斯设置 我不使用任何源代码管理方法,因此我将其保留为非 在全局工具配置下 > JDK安装已设置为自动安装 Maven配置设置为, > 文件路径=C:\Users***。m2\设置。xml 默认全局设置提供程序=使用默认maven全局设置 TestNg文件 POM文件