首页 > 解决方案 > Selenium 和 Java 的 org.apache.bcel.verifier.exc.AssertionViolatedException.main(AssertionViolatedException.java:102) 错误

问题描述

我正在尝试编写一个自动化测试并且代码成功编译但是当我尝试将它作为“Java 应用程序”执行时,我收到一个AssertionViolatedException错误并且代码不会执行。

我已经尝试过:

  1. 更改sendKeys("string")sendKeys(new String[] {"string"}).

  2. 执行应用程序:“运行为:JAVA APPLICATION”

  3. 在构建路径中设置 jre 环境。

我收到的错误消息是:

Exception in thread "main" org.apache.bcel.verifier.exc.AssertionViolatedException: 
FOUND:
    INTERNAL ERROR: Oops!
Exiting!!

at org.apache.bcel.verifier.exc.AssertionViolatedException.main(AssertionViolatedException.java:102)

标签: javaeclipseseleniumselenium-webdriverwebdriver

解决方案


此错误消息...

Exception in thread "main" org.apache.bcel.verifier.exc.AssertionViolatedException: 
FOUND:
    INTERNAL ERROR: Oops!
Exiting!!

at org.apache.bcel.verifier.exc.AssertionViolatedException.main(AssertionViolatedException.java:102)

...暗示有一个RuntimeException永远不应该被抛出,并且根据文档,由于INTERNAL ERRORBCEL 的类文件验证器而抛出了这样的异常JustIce

此异常和错误定义为:

public static void main(String[] args){
    AssertionViolatedException ave = new AssertionViolatedException("Oops!");
    ave.extendMessage("\nFOUND:\n\t","\nExiting!!\n");
    throw ave;
}

您的代码试验将帮助我们以更好的方式调试问题。但是,当 BCEl 尝试验证字节码修改并失败时,会引发此异常。大概您正在使用一些使用 BCEL 来修改 Java 编译器生成的字节码的 jar(s)/工具。如果您使用 BCEL 作为您需要调试的要求,为什么它会中断。如果您不使用 BCEL 作为要求,则可以尝试以下任一步骤:

  • 通过您的IDE ( > > > )清理您的项目工作区,并仅使用所需的依赖项重建您的项目。ProjectClean...Clean all projectsOK

  • 在调用方法之前添加WebDriverWaitsendKeys()如下:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.nsg-button")))sendKeys("string");
    
  • 创建一个新的新项目,仅使用所需的依赖项重建您的项目并执行您的测试

推荐阅读