Eclipse错误:无法调用“org.asynchttpclient.ws.WebSocket.sendCloseFrame(int,String)”,因为“此.套接字”为空

bq3bfh9z  于 2023-03-18  发布在  Eclipse
关注(0)|答案(1)|浏览(130)

我对 selenium 比较陌生。
我的测试自动化项目将在3月13日(3天前)运行,没有任何问题
我没有改变项目本身的任何东西。
但是,从3月14日开始,当我尝试运行该项目时:

我收到错误:

Failure: 1 : Script desription
java.lang.NullPointerException: Cannot invoke "org.asynchttpclient.ws.WebSocket.sendCloseFrame(int, String)" because "this.socket" is null
java.lang.NullPointerException: Cannot invoke "org.asynchttpclient.ws.WebSocket.sendCloseFrame(int, String)" because "this.socket" is null
    at org.openqa.selenium.remote.http.netty.NettyWebSocket.close(NettyWebSocket.java:116)
    at org.openqa.selenium.devtools.Connection.close(Connection.java:127)
    at java.base/java.util.Optional.ifPresent(Optional.java:178)
    at org.openqa.selenium.chromium.ChromiumDriver.quit(ChromiumDriver.java:192)
    at com.scriptDescription.StepDefinition.Step_DoSomething.before(Step_DoSomething.java:27)
Tests = 29
 : Successes = 28
 : Failures = 1

另见截图:

测试脚本甚至不会开始执行。
运行将立即停止:

Web浏览器正在启动,但没有任何React:

有谁能分享一下想法或提供点帮助吗。

mspsb9vt

mspsb9vt1#

此错误消息...

java.lang.NullPointerException: Cannot invoke "org.asynchttpclient.ws.WebSocket.sendCloseFrame(int, String)" because "this.socket" is null
    at org.openqa.selenium.remote.http.netty.NettyWebSocket.close(NettyWebSocket.java:116)

...表示***asynchttpclient***存在问题。

详情

核心问题是Origin header is always sent from WebSocket clientSelenium仍在使用的***Netty v4.x***的问题。此问题在***Netty v5.x**中得到解决。
溶液
最佳解决方案是升级到java-11HTTP Client with Selenium 4.5.0 and beyond
但是,一个快速的解决方法是添加参数--remote-allow-origins=
,如下所示:

ChromeOptions options = new ChromeOptions();
options.addArguments("--remote-allow-origins=*");
WebDriver driver = new ChromeDriver(options);

参考文献

您可以在以下内容中找到一些相关的详细讨论:

相关问题