我正在尝试编写一个自动化测试,并且代码可以成功编译,但是当我尝试以“ 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 ERROR
的JustIce
引发了这种异常。此异常和错误定义为:
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");
创建一个新的新项目,仅使用必需的依赖项重建您的项目并执行测试。