【问题标题】:Selenium Connection Reset: Unable to find an exact match for CDP version 96, so returning the closest version found: 95Selenium 连接重置:无法找到 CDP 版本 96 的完全匹配,因此返回找到的最接近的版本:95
【发布时间】:2021-12-30 17:17:11
【问题描述】:

堆栈跟踪:

Starting ChromeDriver 96.0.4664.45 (76e4c1bb2ab4671b8beba3444e61c0f17584b2fc-refs/branch-heads/4664@{#947}) on port 58050
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
Nov 20, 2021 9:34:48 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Nov 20, 2021 9:34:49 AM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
WARNING: Unable to find an exact match for CDP version 96, so returning the closest version found: 95
Nov 20, 2021 9:34:49 AM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
INFO: Found CDP implementation for version 96 of 95
Nov 20, 2021 9:36:34 AM org.openqa.selenium.remote.http.WebSocket$Listener onError
WARNING: Connection reset
java.net.SocketException: Connection reset
    at java.base/sun.nio.ch.SocketChannelImpl.throwConnectionReset(SocketChannelImpl.java:394)
    at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:426)
    at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:253)
    at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1132)
    at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:350)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:831)

我正在制作一个 java selenium 机器人,当我启动机器人时,它会在代码的最后一行之后显示连接重置

我得到了这个错误,即使我的

  • Chrome 版本 = 96
  • 驱动程序版本 = 96

请帮忙

代码如下:

public static void main(String[] args) throws InterruptedException {
        //region GUI
        int loginTimeOutDuration = 100000;
        int chatLoadingDelay = 1000;
        String serverID = "707324806856572949";
        String message = "Hi!";
        //endregion

        System.setProperty
                ("webdriver.chrome.driver","C:\\\\Users\\\\~~~~~\\\\Downloads\\\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();

        String baseUrl = "https://discord.com/channels/" + serverID + "/";

        driver.get(baseUrl);
        Thread.sleep(loginTimeOutDuration);
        WebElement element = driver.findElement(By.xpath("/html/body/div[1]/div[2]/div/div[2]/div/div/div/" +
                "div/div[2]/div[2]/div/aside/div/div/div[2]/div/div[2]/div[1]"));

        Actions actions = new Actions(driver);
        actions.contextClick(element).perform();
        driver.findElement(By.xpath("/html/body/div[1]/div[5]/div/div/div/div[1]/div[2]")).click();

        driver.close();
    }

【问题讨论】:

标签: java selenium google-chrome selenium-webdriver selenium-chromedriver


【解决方案1】:

此错误消息...

Nov 20, 2021 9:34:49 AM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
WARNING: Unable to find an exact match for CDP version 96, so returning the closest version found: 95
Nov 20, 2021 9:34:49 AM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
INFO: Found CDP implementation for version 96 of 95
Nov 20, 2021 9:36:34 AM org.openqa.selenium.remote.http.WebSocket$Listener onError
WARNING: Connection reset
java.net.SocketException: Connection reset

...暗示 ChromeDriver 无法启动/生成新的浏览上下文,即 Chrome 浏览器 会话和 @ 987654325@ 发生了。

您的主要问题是您使用的二进制文件版本之间的不兼容性,如下所示:

  • 虽然您使用的是 chromedriver=96.0
  • 您可能正在使用Selenium v4.0.0,其中:
  • 支持的 CDP 版本:85、93、94、95

因此,您会看到:

WARNING: Unable to find an exact match for CDP version 96, so returning the closest version found: 95

解决方案

确保:

  • Selenium 升级到当前的v4.1.0,其中:
  • 支持的 CDP 版本:85、94、95、96

【讨论】:

  • 它对我有用!仔细检查 Selenium 版本,就是这样。
  • @NilsonNieto 很高兴能为您提供帮助。请accept answer 点击我的 answer 旁边的空心刻度线,它就在 votedown 箭头下方,这样刻度线就会转动绿色.
【解决方案2】:

这个SocketException在客户端关闭时发生在服务器端 响应之前的套接字连接可以通过 插座。例如,通过在响应之前退出浏览器 检索到。

discord.com 使用 Websocket 通信,当你连接时,wss://remote-auth-gateway.discord.gg/?v=1 等待认证。 (套接字还活着)

也许driver.close() 关闭了套接字。

【讨论】:

    猜你喜欢
    • 2021-11-26
    • 1970-01-01
    • 2022-07-21
    • 2022-11-02
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    相关资源
    最近更新 更多