Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Possible deep-rooted issue of Conversion of String Encodings in http response body. #14

Closed
luke-hill opened this issue Feb 16, 2021 · 20 comments

Comments

@luke-hill
Copy link

luke-hill commented Feb 16, 2021

Preface

This is a bit of a long convoluted chain (So apologies in advance). I'm not even sure if this is 100% fixable. But I'll post it here and try include as much info.

When using Selenium::Webdriver.logger in standard selenium practice, you can pipe debug messages. The following issue occurs (Page under test is: https://www.citizensadvice.org.uk/immigration/ - A national charity website).

Simple reproduction case

  1. Grab text of footer using selenium. With the footer on this website, we have a © character.
  2. If selenium logging is set, pipe some debug info to the selenium logger (This is a standard ruby logger)
  3. Whilst debugging the info here. We get a Ruby Logger Kernel.warn message
log writing failed. "\xC2" from ASCII-8BIT to UTF-8

Root cause

The root cause issue (I believe), is with this process flow. The capitalised letters refer to which library is doing the code processing at that time.

  1. SELENIUM - A request payload is built up using a standard API Payload structure
  2. NET::HTTP - The request is sent using the Selenium HTTP adapter (Which is just an instance of the net http one).
  3. NET::HTTP - The request object is returned with all the standard properties - This is where the non-conformancy is generated.
  4. SELENIUM - Selenium then processes this through a series of check to ensure safety
  5. LOGGER - If configured it will do a debug-trace log (We have this set to on) - This is where the error is bubbled up.

Next steps?

I am not 100% sure. I think it would be nice to know why this encoding conversion is happening. I can patch it fine my end. But it has been mentioned to try trace exactly where / why it's occurring.

@luke-hill
Copy link
Author

Extra infos:

This only occurs when you get a (c) character. Some people at work have told me a quick-fix to this, which works well. But it would be good to know why when finding a (c) character using this library the encoding changes from UTF-8 (The standard one in our filesystem), to ASCII.

A colleague of mine mentioned that maybe it's not ASCII but an "Unknown Binary" encoding, and that ASCII is being defaulted erroneously?

Would it be possibly to have the http response body set to be the correct encoding at all times?

@jeremyevans
Copy link
Contributor

ASCII-8BIT encoding means binary. It is currently expected that net-http returns bodies with this encoding, though there is a long standing feature request to add encoding support: https://bugs.ruby-lang.org/issues/2567

@jeremyevans
Copy link
Contributor

This is possibly addressed by #17, can you check if that will work for you? You'll have to modify the code using Net::HTTP to set the new force_response_body_encoding support.

@luke-hill
Copy link
Author

Sure thing. I'll have a go at this in the coming days.

@luke-hill
Copy link
Author

luke-hill commented Mar 10, 2021

Managed to get a free 10 mins.

A quick copy and paste of the 2 raw files in your SHA did not fix the issue.

We currently fix the issue by running Selenium::WebDriver.logger.io.binmode as a single line method invocation.

The io method does the following

      def io
        @logger.instance_variable_get(:@logdev).dev
      end

The logger in question is a Selenium::WebDriver.logger instance.

@jeremyevans
Copy link
Contributor

That's expected. As I wrote previously: "You'll have to modify the code using Net::HTTP to set the new force_response_body_encoding support."

@luke-hill
Copy link
Author

Just curious with the fixes that went in in 2022 by yourself and merged by nurse whether this is in a future Ruby version.

I have patched this in a gem I maintain here: https://github.com/site-prism/automation_helpers specifically with this patch class here: https://github.com/site-prism/automation_helpers/blob/main/lib/automation_helpers/patches/selenium_logger.rb

Any thoughts/updates on what I could/should be doing?

@jeremyevans
Copy link
Contributor

This pull request I discussed above is in Ruby 3.2. It was renamed from force_response_body_encoding to just response_body_encoding: 6233e6b

Unfortunately, I'm at a conference and do not currently have time to look at the links you sent.

@luke-hill
Copy link
Author

Cheers. That's great to hear. In the next week or so I'll re-test this on ruby 3.2 and update my findings. Obviously I'm assuming it isn't a backport candidate as it's just a cosmetic feature.

The links I sent were to a patch based on date / gem version. So I'll need to factor in this and add a date much further in the future.

@luke-hill
Copy link
Author

As an update. Real life got in the way. I'm still nowhere near ready to verify this is fixed or not. But I will get to it. At some point :D

@luke-hill
Copy link
Author

Hi @jeremyevans - Would it be possible to include the string representation of the site I scanned in the minitest suite. I have just re-tested on ruby 3.2.2 and the bug is still there.

Console warns (In red)

log writing failed. "\xE2" from ASCII-8BIT to UTF-8
log writing failed. "\xE2" from ASCII-8BIT to UTF-8
log writing failed. "\xE2" from ASCII-8BIT to UTF-8
log writing failed. "\xE2" from ASCII-8BIT to UTF-8
log writing failed. "\xE2" from ASCII-8BIT to UTF-8
log writing failed. "\xC2" from ASCII-8BIT to UTF-8

A small sample script (Using capybara) is as follows (Some bits ommitted)

$ visit('https://www.citizensadvice.org.uk/immigration/') # nil
$ copyright = page.find('[data-testid="copyright"]') # #<Capybara::Node::Element:0x00007f2cedab2360>
$ copyright.text # Copyright ©2024 Citizens Advice. All rights reserved.

@jeremyevans
Copy link
Contributor

@luke-hill I'm not sure. However, the question doesn't seem related to net-http. If you are not already, you may want to try HTTP#response_body_encoding= to set the expected response body encoding. Alternatively, make sure your logger is logging to a binary file and not a text file.

@luke-hill
Copy link
Author

Currently I have a 1-line patch which is. @logger.instance_variable_get(:@logdev).dev#binmode

The logger does currently log to a file, this is deliberate.

What I'm looking for is something to be fixed here so that I don't need to run the patch. If I need to retain the patch because the issue isn't fixed that's fine. Just thought I'd mention this hasn't fixed the underlying bug

@jeremyevans
Copy link
Contributor

Apparently, your patch is to a logger. If you provide your logger an already open File instance in binary mode, shouldn't that resolve the problem without the need to patch?

This doesn't sound like a bug at all, it sounds like an improper Logger configuration issue. Can you explain why you think this is a net-http issue?

@luke-hill
Copy link
Author

Because the error message is generated there and I'll be honest it's been over 3.5 years since I first found this. So I'm not 100% sure.

My original work was done here: site-prism/automation_helpers@e4c8597 from February 2021 and I'd been suffering with it for a while before that.

The Logger is just configured out of the box, no customisations e.t.c. - imo if the ruby Logger out of the box cannot handle the (c) character then that needs fixing. Maybe it needs to go to ruby/logger. Again I'm not 100%. I was just chasing up something from a while back here.

@jeremyevans
Copy link
Contributor

I'm going to close this now, since it isn't a bug in net-http.

It doesn't appear to be a bug in Logger, either. If you can come up with a self-contained reproducible example that uses Logger and no other libraries, please post an issue in the logger repository.

@luke-hill
Copy link
Author

Thanks for your pointers. It's likely I'm going to need some help though. As when dieting it down it is only occuring when running in debug mode in RubyMine. I've also stripped away as much as I can to reliably re-generate it. I've got it down to 15 lines. If you can advise what to do next I would be greatly appreciative.

require 'automation_helpers/drivers/local'
require 'capybara'
require 'selenium-webdriver'

# Setup
Capybara.default_driver = :selenium
Selenium::WebDriver.logger.level = :DEBUG
Selenium::WebDriver.logger.output = 'dummyfile.log'
AutomationHelpers::Drivers::Local.new(:chrome).register

# Test and generate error
Capybara.current_session.visit('https://www.citizensadvice.org.uk/immigration/')
copyright = Capybara.current_session.find('[data-testid="copyright"]')
Selenium::WebDriver.logger.info(copyright.text)

The file produced by the ruby logger is around 60 lines big.

2024-01-30 10:05:04 INFO Selenium [:logger_info] Details on how to use and modify Selenium logger:
  https://selenium.dev/documentation/webdriver/troubleshooting/logging

2024-01-30 10:05:04 DEBUG Selenium [:selenium_manager] Selenium Manager binary found at /usr/share/rvm/gems/ruby-3.2.2/gems/selenium-webdriver-4.15.0/bin/linux/selenium-manager 
2024-01-30 10:05:04 DEBUG Selenium [:selenium_manager] Executing Process ["/usr/share/rvm/gems/ruby-3.2.2/gems/selenium-webdriver-4.15.0/bin/linux/selenium-manager", "--browser", "chrome", "--output", "json", "--debug"] 
2024-01-30 10:05:04 DEBUG Selenium [:selenium_manager] chromedriver not found in PATH 
2024-01-30 10:05:04 DEBUG Selenium [:selenium_manager] chrome detected at /usr/bin/google-chrome 
2024-01-30 10:05:04 DEBUG Selenium [:selenium_manager] Running command: /usr/bin/google-chrome --version 
2024-01-30 10:05:04 DEBUG Selenium [:selenium_manager] Output: "Google Chrome 121.0.6167.85 " 
2024-01-30 10:05:04 DEBUG Selenium [:selenium_manager] Detected browser: chrome 121.0.6167.85 
2024-01-30 10:05:04 DEBUG Selenium [:selenium_manager] Required driver: chromedriver 121.0.6167.85 
2024-01-30 10:05:04 DEBUG Selenium [:selenium_manager] chromedriver 121.0.6167.85 already in the cache 
2024-01-30 10:05:04 DEBUG Selenium [:selenium_manager] Driver path: /home/luke/.cache/selenium/chromedriver/linux64/121.0.6167.85/chromedriver 
2024-01-30 10:05:04 DEBUG Selenium [:selenium_manager] Browser path: /usr/bin/google-chrome 
2024-01-30 10:05:04 DEBUG Selenium [:driver_service] Executing Process ["/home/luke/.cache/selenium/chromedriver/linux64/121.0.6167.85/chromedriver", "--port=9515"] 
2024-01-30 10:05:04 DEBUG Selenium [:process] Starting process: ["/home/luke/.cache/selenium/chromedriver/linux64/121.0.6167.85/chromedriver", "--port=9515"] with {[:out, :err]=>#<File:dummyfile.log>, :pgroup=>true} 
2024-01-30 10:05:04 DEBUG Selenium [:process]   -> pid: 559488 
2024-01-30 10:05:04 DEBUG Selenium [:driver_service] polling for socket on ["127.0.0.1", 9515] 
Starting ChromeDriver 121.0.6167.85 (3f98d690ad7e59242ef110144c757b2ac4eef1a2-refs/branch-heads/6167@{#1539}) on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
2024-01-30 10:05:04 DEBUG Selenium [:command] -> POST session 
2024-01-30 10:05:04 DEBUG Selenium [:command]    >>> http://127.0.0.1:9515/session | {"capabilities":{"alwaysMatch":{"browserName":"chrome","goog:chromeOptions":{"binary":"/usr/bin/google-chrome"}}}} 
2024-01-30 10:05:04 DEBUG Selenium [:header]      > {"Accept"=>"application/json", "Content-Type"=>"application/json; charset=UTF-8", "User-Agent"=>"selenium/4.15.0 (ruby linux)", "Content-Length"=>"114"} 
2024-01-30 10:05:04 DEBUG Selenium [:header]    <<<  {"content-length"=>["848"], "content-type"=>["application/json; charset=utf-8"], "cache-control"=>["no-cache"]} 
2024-01-30 10:05:04 DEBUG Selenium [:command] <- {"value":{"capabilities":{"acceptInsecureCerts":false,"browserName":"chrome","browserVersion":"121.0.6167.85","chrome":{"chromedriverVersion":"121.0.6167.85 (3f98d690ad7e59242ef110144c757b2ac4eef1a2-refs/branch-heads/6167@{#1539})","userDataDir":"/tmp/.org.chromium.Chromium.HzK764"},"fedcm:accounts":true,"goog:chromeOptions":{"debuggerAddress":"localhost:43557"},"networkConnectionEnabled":false,"pageLoadStrategy":"normal","platformName":"linux","proxy":{},"setWindowRect":true,"strictFileInteractability":false,"timeouts":{"implicit":0,"pageLoad":300000,"script":30000},"unhandledPromptBehavior":"dismiss and notify","webauthn:extension:credBlob":true,"webauthn:extension:largeBlob":true,"webauthn:extension:minPinLength":true,"webauthn:extension:prf":true,"webauthn:virtualAuthenticators":true},"sessionId":"a29e93b915adc13d7c8f1351239ae5cb"}} 
2024-01-30 10:05:04 DEBUG Selenium [:command] -> POST session/a29e93b915adc13d7c8f1351239ae5cb/url 
2024-01-30 10:05:04 DEBUG Selenium [:command]    >>> http://127.0.0.1:9515/session/a29e93b915adc13d7c8f1351239ae5cb/url | {"url":"https://www.citizensadvice.org.uk/immigration/"} 
2024-01-30 10:05:04 DEBUG Selenium [:header]      > {"Accept"=>"application/json", "Content-Type"=>"application/json; charset=UTF-8", "User-Agent"=>"selenium/4.15.0 (ruby linux)", "Content-Length"=>"56"} 
2024-01-30 10:05:04 DEBUG Selenium [:header]    <<<  {"content-length"=>["14"], "content-type"=>["application/json; charset=utf-8"], "cache-control"=>["no-cache"]} 
2024-01-30 10:05:04 DEBUG Selenium [:command] <- {"value":null} 
2024-01-30 10:05:04 DEBUG Selenium [:command] -> POST session/a29e93b915adc13d7c8f1351239ae5cb/elements 
2024-01-30 10:05:04 DEBUG Selenium [:command]    >>> http://127.0.0.1:9515/session/a29e93b915adc13d7c8f1351239ae5cb/elements | {"using":"css selector","value":"[data-testid=\"copyright\"]"} 
2024-01-30 10:05:04 DEBUG Selenium [:header]      > {"Accept"=>"application/json", "Content-Type"=>"application/json; charset=UTF-8", "User-Agent"=>"selenium/4.15.0 (ruby linux)", "Content-Length"=>"62"} 
2024-01-30 10:05:04 DEBUG Selenium [:header]    <<<  {"content-length"=>["96"], "content-type"=>["application/json; charset=utf-8"], "cache-control"=>["no-cache"]} 
2024-01-30 10:05:04 DEBUG Selenium [:command] <- {"value":[{"element-6066-11e4-a52e-4f735466cecf":"D063B87B2E6727DE3C305A009BBAF7B1_element_9"}]} 
2024-01-30 10:05:04 DEBUG Selenium [:script] Using script for :isDisplayed 
2024-01-30 10:05:04 DEBUG Selenium [:command] -> POST session/a29e93b915adc13d7c8f1351239ae5cb/execute/sync 
2024-01-30 10:05:04 DEBUG Selenium [:command]    >>> http://127.0.0.1:9515/session/a29e93b915adc13d7c8f1351239ae5cb/execute/sync | {"script":"/* isDisplayed */return ((function(){function d(t,e,n){function r(t){var e=x(t);if(0<e.height&&0<e.width)return!0;if(\"PATH\"==t.tagName.toUpperCase()&&(0<e.height||0<e.width)){var n=window.getComputedStyle(t)[\"stroke-width\"];return!!n&&0<parseInt(n,10)}return\"hidden\"!=window.getComputedStyle(t).overflow&&Array.prototype.slice.call(t.childNodes).some(function(t){return t.nodeType==Node.TEXT_NODE||t.nodeType==Node.ELEMENT_NODE&&r(t)})}function i(t){return C(t)==T.HIDDEN&&Array.prototype.slice.call(t.childNodes).every(function(t){return t.nodeType!=Node.ELEMENT_NODE||i(t)||!r(t)})}var o=t.tagName.toUpperCase();if(\"BODY\"==o)return!0;if(\"OPTION\"==o||\"OPTGROUP\"==o){var a=c(t,function(t){return\"SELECT\"==t.tagName.toUpperCase()});return!!a&&d(a,!0,n)}var u=s(t);if(u)return!!u.image&&0<u.rect.width&&0<u.rect.height&&d(u.image,e,n);if(\"INPUT\"==o&&\"hidden\"==t.type.toLowerCase())return!1;if(\"NOSCRIPT\"==o)return!1;var l=window.getComputedStyle(t).visibility;return\"collapse\"!=l&&\"hidden\"!=l&&(!!n(t)&&(!(!e&&0==f(t))&&(!!r(t)&&!i(t))))}function E(t){var e=x(t);return{left:e.left,right:e.left+e.width,top:e.top,bottom:e.top+e.height}}function D(t){return t.parentElement}function C(t){function e(t){function e(t){if(t==u)return!0;var e=window.getComputedStyle(t),n=e.display;return 0!=n.indexOf(\"inline\")&&\"contents\"!=n&&(\"absolute\"!=r||\"static\"!=e.position)}var r=window.getComputedStyle(t).position;if(\"fixed\"==r)return i=!0,t==u?null:u;for(var n=D(t);n&&!e(n);)n=D(n);return n}function n(t){var e=t;if(\"visible\"==d)if(t==u&&l)e=l;else if(t==l)return{x:\"visible\",y:\"visible\"};var n=window.getComputedStyle(e),r={x:n[\"overflow-x\"],y:n[\"overflow-y\"]};return t==u&&(r.x=\"visible\"==r.x?\"auto\":r.x,r.y=\"visible\"==r.y?\"auto\":r.y),r}function r(t){return t==u?{x:window.scrollX,y:window.scrollY}:{x:t.scrollLeft,y:t.scrollTop}}for(var i,o=E(t),a=t.ownerDocument,u=a.documentElement,l=a.body,d=window.getComputedStyle(u).overflow,f=e(t);f;f=e(f)){var h=n(f);if(\"visible\"!=h.x||\"visible\"!=h.y){var s=x(f);if(0==s.width||0==s.height)return T.HIDDEN;var p=o.right<s.left,c=o.bottom<s.top;if(p&&\"hidden\"==h.x||c&&\"hidden\"==h.y)return T.HIDDEN;if(p&&\"visible\"!=h.x||c&&\"visible\"!=h.y){var v=r(f),g=o.right<s.left-v.x,w=o.bottom<s.top-v.y;return g&&\"visible\"!=h.x||w&&\"visible\"!=h.x?T.HIDDEN:C(f)==T.HIDDEN?T.HIDDEN:T.SCROLL}var N=o.left>=s.left+s.width,m=o.top>=s.top+s.height;if(N&&\"hidden\"==h.x||m&&\"hidden\"==h.y)return T.HIDDEN;if(N&&\"visible\"!=h.x||m&&\"visible\"!=h.y){if(i){var y=r(f);if(o.left>=u.scrollWidth-y.x||o.right>=u.scrollHeight-y.y)return T.HIDDEN}return C(f)==T.HIDDEN?T.HIDDEN:T.SCROLL}}}return T.NONE}function o(t){var e=t.document.documentElement;return{width:e.clientWidth,height:e.clientHeight}}function p(t,e,n,r){return{left:t,top:e,width:n,height:r}}function x(t){var e,n=s(t);if(n)return n.rect;if(\"HTML\"==t.tagName.toUpperCase()){t.ownerDocument;var r=o(window);return p(0,0,r.width,r.height)}try{e=t.getBoundingClientRect()}catch(i){return p(0,0,0,0)}return p(e.left,e.top,e.right-e.left,e.bottom-e.top)}function f(t){var e=1,n=window.getComputedStyle(t).opacity;n&&(e=Number(n));var r=D(t);return r&&r.nodeType==Node.ELEMENT_NODE&&(e*=f(r)),e}function h(t){var e=t.shape.toLowerCase(),n=t.coords.split(\",\");if(\"rect\"==e&&4==n.length){var r=n[0],i=n[1];return p(r,i,n[2]-r,n[3]-i)}if(\"circle\"==e&&3==n.length){var o=n[0],a=n[1],u=n[2];return p(o-u,a-u,2*u,2*u)}if(\"poly\"==e&&2<n.length){for(var l=n[0],d=n[1],f=l,h=d,s=2;s+1<n.length;s+=2)l=Math.min(l,n[s]),f=Math.max(f,n[s]),d=Math.min(d,n[s+1]),h=Math.max(h,n[s+1]);return p(l,d,f-l,h-d)}return p(0,0,0,0)}function s(t){var e=t.tagName.toUpperCase(),n=\"MAP\"==e;if(!n&&\"AREA\"!=e)return null;var r=n?t:\"MAP\"==D(t).tagName.toUpperCase()?D(t):null,i=null,o=null;if(r&&r.name&&((i=r.ownerDocument.querySelector(\"*[usemap='#\"+r.name+\"']\"))&&(o=x(i),!n&&\"default\"!=t.shape.toLowerCase()))){var a=h(t),u=Math.min(Math.max(a.left,0),o.width),l=Math.min(Math.max(a.top,0),o.height),d=Math.min(a.width,o.width-u),f=Math.min(a.height,o.height-l);o=p(u+o.left,l+o.top,d,f)}return{image:i,rect:o||p(0,0,0,0)}}function c(t,e){for(t&&(t=D(t));t;){if(e(t))return t;t=D(t)}return null}function r(t){var e=t.parentNode;if(e&&e.shadowRoot&&t.assignedSlot!==undefined)return t.assignedSlot?t.assignedSlot.parentNode:null;if(t.getDestinationInsertionPoints){var n=t.getDestinationInsertionPoints();if(0<n.length)return n[n.length-1]}return e}var T={NONE:\"none\",HIDDEN:\"hidden\",SCROLL:\"scroll\"};return function i(t,e){function n(t){if(\"none\"==window.getComputedStyle(t).display)return!1;var e=r(t);if(\"function\"==typeof ShadowRoot&&e instanceof ShadowRoot){if(e.host.shadowRoot!==e)return!1;e=e.host}return!(!e||e.nodeType!=Node.DOCUMENT_NODE&&e.nodeType!=Node.DOCUMENT_FRAGMENT_NODE)||!(e&&e.tagName&&\"DETAILS\"==e.tagName.toUpperCase()&&!e.open&&\"SUMMARY\"!=t.tagName)&&(e&&n(e))}return d(t,!!e,n)}})()).apply(null, arguments)","args":[{"element-6066-11e4-a52e-4f735466cecf":"D063B87B2E6727DE3C305A009BBAF7B1_element_9"}]} 
2024-01-30 10:05:04 DEBUG Selenium [:header]      > {"Accept"=>"application/json", "Content-Type"=>"application/json; charset=UTF-8", "User-Agent"=>"selenium/4.15.0 (ruby linux)", "Content-Length"=>"5090"} 
2024-01-30 10:05:04 DEBUG Selenium [:header]    <<<  {"content-length"=>["14"], "content-type"=>["application/json; charset=utf-8"], "cache-control"=>["no-cache"]} 
2024-01-30 10:05:04 DEBUG Selenium [:command] <- {"value":true} 
2024-01-30 10:05:04 DEBUG Selenium [:command] -> GET session/a29e93b915adc13d7c8f1351239ae5cb/element/D063B87B2E6727DE3C305A009BBAF7B1_element_9/text 
2024-01-30 10:05:04 DEBUG Selenium [:header]    <<<  {"content-length"=>["66"], "content-type"=>["application/json; charset=utf-8"], "cache-control"=>["no-cache"]} 
2024-01-30 10:05:04 INFO Selenium Copyright ©2024 Citizens Advice. All rights reserved.
2024-01-30 10:05:04 DEBUG Selenium [:command] -> DELETE session/a29e93b915adc13d7c8f1351239ae5cb 
2024-01-30 10:05:04 DEBUG Selenium [:header]    <<<  {"content-length"=>["14"], "content-type"=>["application/json; charset=utf-8"], "cache-control"=>["no-cache"]} 
2024-01-30 10:05:04 DEBUG Selenium [:command] <- {"value":null} 
2024-01-30 10:05:04 DEBUG Selenium [:process] Checking if 559488 is exited: 
2024-01-30 10:05:04 DEBUG Selenium [:process] Polling 20 seconds for exit of 559488 
2024-01-30 10:05:04 DEBUG Selenium [:process] Checking if 559488 is exited: 
2024-01-30 10:05:05 DEBUG Selenium [:process] Checking if 559488 is exited: 
2024-01-30 10:05:05 DEBUG Selenium [:process]   -> exit code is 0 
2024-01-30 10:05:05 DEBUG Selenium [:process] Checking if 559488 is exited: 
2024-01-30 10:05:05 DEBUG Selenium [:process]   -> exit code is 0 
2024-01-30 10:05:05 DEBUG Selenium [:process] Checking if 559488 is exited: 
2024-01-30 10:05:05 DEBUG Selenium [:process]   -> exit code is 0 
2024-01-30 10:05:05 DEBUG Selenium [:process] Checking if 559488 is exited: 
2024-01-30 10:05:05 DEBUG Selenium [:process]   -> exit code is 0 
2024-01-30 10:05:05 DEBUG Selenium [:process] Checking if 559488 is exited: 
2024-01-30 10:05:05 DEBUG Selenium [:process]   -> exit code is 0 

I also wrote a bug a while back for selenium which didn't get very far.

SeleniumHQ/selenium#8846

@jeremyevans
Copy link
Contributor

If this is only happening in debug mode in RubyMine, maybe you should ask them?

@luke-hill
Copy link
Author

Thankyou. I've raised it in the tracker there. I imagine all 3 areas are likely to point me in circles so I'll post an update here as/when I have updates

@jeremyevans
Copy link
Contributor

There is no need to post an update here. This is not a net-http issue, and this is not a general support forum.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants