我正在尝试编写一个自动化测试,并且代码可以成功编译,但是当我尝试以“ Java应用程序”的身份执行代码时,出现了AssertionViolatedException错误,并且代码无法执行。

我已经尝试过:


sendKeys("string")更改为sendKeys(new String[] {"string"})
使用以下命令执行应用程序:“运行方式:JAVA APPLICATION”
在构建路径中设置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)

最佳答案

此错误消息...

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,并且根据documentation,由于BCEL的类文件验证程序INTERNAL ERRORJustIce引发了这种异常。

此异常和错误定义为:

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




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


通过IDE(Project> Clean...> Clean all projects> OK)清理项目工作区,并仅使用必需的依赖项重建项目。
在调用sendKeys()方法之前添加WebDriverWait,如下所示:

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.nsg-button")))sendKeys("string");

创建一个新的新项目,仅使用必需的依赖项重建您的项目并执行测试。

08-28 04:44