Как игнорировать ssl_client_socket_impl.cc (1061)] рукопожатие не удалось в селене c # ChromeDriver - PullRequest
0 голосов
/ 12 декабря 2018

Я добавил

 ChromeOptions options = new ChromeOptions();
 options.AddArgument("--ignore-certificate-errors-spki-list");
 options.AddArgument("--ignore-ssl-errors");
 options.AddArgument("test-type");
 options.AddArguments("-incognito");
 options.AddArgument("no-sandbox");
 options.AddArgument("--start-maximized");
 driver = new ChromeDriver(options);

Но все еще получаю:

ssl_client_socket_impl.cc(1061)] handshake failed error 

Как устранить эту ошибку с консоли?

enter image description here

1 Ответ

0 голосов
/ 13 декабря 2018

Это сообщение об ошибке ...

[ERROR:ssl_client_socket_openssl.cc(855)] handshake failed; returned -1, SSL error code 1, net_error -2

... означает, что произошел сбой рукопожатия между ChromeDriver и Chrome Browser не удалосьв какой-то момент.


Основная причина

Эта ошибка возникает из-за net :: SSLClientSocketImpl :: DoHandshake и net :: SSLClientSocketImpl реализовано в ssl_client_socket_impl.cc net :: SSLClientSocketImpl :: DoHandshake следующим образом:

int SSLClientSocketImpl::DoHandshake() {
  crypto::OpenSSLErrStackTracer err_tracer(FROM_HERE);
  int rv = SSL_do_handshake(ssl_.get());
  int net_error = OK;
  if (rv <= 0) {
    int ssl_error = SSL_get_error(ssl_.get(), rv);
    if (ssl_error == SSL_ERROR_WANT_CHANNEL_ID_LOOKUP) {
      // The server supports channel ID. Stop to look one up before returning to
      // the handshake.
      next_handshake_state_ = STATE_CHANNEL_ID_LOOKUP;
      return OK;
    }
    if (ssl_error == SSL_ERROR_WANT_X509_LOOKUP &&
    !ssl_config_.send_client_cert) {
      return ERR_SSL_CLIENT_AUTH_CERT_NEEDED;
    }
    if (ssl_error == SSL_ERROR_WANT_PRIVATE_KEY_OPERATION) {
      DCHECK(ssl_config_.client_private_key);
      DCHECK_NE(kSSLClientSocketNoPendingResult, signature_result_);
      next_handshake_state_ = STATE_HANDSHAKE;
      return ERR_IO_PENDING;
    }
    OpenSSLErrorInfo error_info;
    net_error = MapLastOpenSSLError(ssl_error, err_tracer, &error_info);
    if (net_error == ERR_IO_PENDING) {
      // If not done, stay in this state
      next_handshake_state_ = STATE_HANDSHAKE;
      return ERR_IO_PENDING;
    }
    LOG(ERROR) << "handshake failed; returned " << rv << ", SSL error code "
           << ssl_error << ", net_error " << net_error;
    net_log_.AddEvent(
    NetLogEventType::SSL_HANDSHAKE_ERROR,
    CreateNetLogOpenSSLErrorCallback(net_error, ssl_error, error_info));
  }
  next_handshake_state_ = STATE_HANDSHAKE_COMPLETE;
  return net_error;
}

Согласно ОШИБКА: сбой рукопожатия ssl_client_socket_openssl.cc основная ошибка сбой из рукопожатия при ChromeDriver рукопожатиях с SSL-страницами в Chrome .Хотя команда Chromium проводит тест на рукопожатие SSL через net_unittests, content_tests и browser_tests, но не были исчерпывающими .Некоторые сценарии использования не учитываются в исходных тестах.

Заключение

Эта ошибка не прерывает выполнение вашего тестаSuite , и вы можете пока игнорировать эту проблему, пока она не будет устранена Chromium Team .

...