测试自动化异常处理:找不到创建产品按钮时执行代码B的方法
测试自动化中元素未找到的异常处理方案
针对你提出的场景,核心是通过异常捕获机制区分「元素未找到」和「元素存在但禁用」两种情况,仅在元素未找到时执行代码B。以下是具体实现方案:
实现思路
利用测试框架(如Selenium)抛出的NoSuchElementException捕获「创建产品按钮找不到」的场景,在异常分支中执行代码B;同时保留原有的禁用状态断言,确保元素存在但禁用时不执行点击操作。
代码示例(Java)
import org.openqa.selenium.NoSuchElementException; try { // 尝试定位并验证创建产品按钮状态后点击 CreatorProductPage.createProductButton().shouldNotBe(Condition.disabled).click(); // 按钮点击成功后执行原有后续步骤 CreatorAddProductPage.createClassButton().click(); } catch (NoSuchElementException e) { // 找不到创建产品按钮时,执行代码B // 替换为你的代码B具体逻辑 codeBExecution(); } catch (AssertionError e) { // 可选:元素存在但处于禁用状态时的处理(如日志记录) System.out.println("创建产品按钮处于禁用状态,跳过点击操作"); }
关键说明
- 精准捕获异常:仅捕获
NoSuchElementException,避免用宽泛的Exception导致误触发代码B(比如网络超时、其他元素异常等) - 保留禁用校验:原有的
shouldNotBe(Condition.disabled)断言会在元素存在但禁用时抛出AssertionError,可单独捕获该异常做日志或跳过处理,不触发代码B - 代码B封装:建议将代码B逻辑封装为独立方法(如示例中的
codeBExecution()),提升代码可读性和复用性
内容的提问来源于stack exchange,提问作者조잔쓰
相关产品推荐
相关产品推荐

