java.net.SocketException: сброс соединения для операторов Selenium driver.close () или driver.quit ()

Я вижу java.net.SocketException: сброс соединения почти каждый раз, когда использую оператор driver.close () или driver.quit (). Браузер закрывается, и пока исключение не влияет ни на один из моих тестов, но я все же хотел бы понять, почему это происходит.

Я проверил несовместимость версий, но проблема не исчезла даже после обновления ChromeDriver. (Я использую ChromeDriver 84.0.4147.30 с версией Google Chrome 84.0.4147.105.)

Проблема носит временный характер, но обычно возникает примерно в 80% случаев.

Код:

public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver","/chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.google.com/");
        driver.close();
        System.exit(0);
    }

Ошибка:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Starting ChromeDriver 84.0.4147.30 (48b3e868b4cc0aa7e8149519690b6f6949e110a8-refs/branch-heads/4147@{#310}) on port 24445
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
Aug 07, 2020 6:39:11 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Aug 07, 2020 6:39:14 PM 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:345)
    at java.base/sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:376)
    at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:253)
    at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1133)
    at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:350)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:148)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
    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:832)


Process finished with exit code 0

person Mythreyi R.    schedule 07.08.2020    source источник


Ответы (1)


Как следует из названия исключения, существует проблема, связанная с вашим Chrome-браузером и Chrome-браузером.

Обновите браузер Chrome до 84, а затем повторите попытку, или вы также можете загрузить более раннюю версию chromedriver, которая совместима с вашей версией Chrome.

person Ankit Agrawal    schedule 07.08.2020
comment
Я увидел это предложение на нескольких страницах и соответственно обновил свой драйвер Chrome. Но исключение все еще возникает, хотя мой браузер и драйвер Chrome являются совместимыми версиями (обе версии 84). Могу ли я что-нибудь еще проверить или изменить, чтобы избежать этого исключения? - person Mythreyi R.; 10.08.2020
comment
Попробуйте эти две проверки и дайте мне знать, решит ли это проблему 1. Посмотрите, не остался ли ваш хромодрайвер открытым. Я думаю, у вас не должно возникнуть этой проблемы при использовании driver.quit () 2. Если вы все еще получаете ошибку, также проверьте версию selenium-java, используемую в проекте. Убедитесь, что у него последняя стабильная версия - person Ankit Agrawal; 10.08.2020