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

DevTools discovery page is deprecated #161

Closed
y-yagi opened this issue Sep 3, 2021 · 9 comments
Closed

DevTools discovery page is deprecated #161

y-yagi opened this issue Sep 3, 2021 · 9 comments

Comments

@y-yagi
Copy link
Contributor

y-yagi commented Sep 3, 2021

debug method access the DevTools discovery page. But the page is deprecated now.

Screenshot from 2021-09-03 10-24-32

Ref: https://bugs.chromium.org/p/chromium/issues/detail?id=1232509

They suggest to use chrome://inspect instead. But, if my understanding is correct, the inspect page can't access directly. Should we remove accessing a page and show a message only?

@borama
Copy link

borama commented Aug 18, 2022

The discovery page content seems to have been removed and the page is now empty (since this commit, released in Chrome 100).

A workaround that works for us is to load the JSON version of the page (http://127.0.0.1:<port>/json) and append the first devtoolsFrontendUrl path to the discovery page URL.

@TylerRick
Copy link

TylerRick commented Oct 27, 2022

I tried page.driver.debug(binding) as described at https://github.com/rubycdp/cuprite#debugging

This will launch the browser where you can inspect the content.

but, while it does open a visible browser window, the content is empty:

image

I was considering opening an issue for it, but it sounds like this #161 is already the issue for this bug, right? It's just that as a new user who is just following the Readme and is unfamiliar with terms like "discovery page", I would not have recognized this issue as being the one to look at for my problem. Should we update the title to some thing more like what users might be searching for, like "Debug open new tab but just shows a blank page"?

Anyway, thanks for the workaround! That does work for me:

Could those steps be automated and done for the user automatically? Or does the driver not have a way to control the visible window?

Since the instructions for this are currently incomplete, should we update the Readme in the meantime to include the full instructions (the above "workaround") for how to inspect your actual page-under-test? Unless a fix for this is forthcoming...?

@jpheos
Copy link

jpheos commented Nov 28, 2023

I have exactly the same issue as you @TylerRick .
If a add /json I can find the url, but maybe you find a better solution since 2022 ?

@phikes
Copy link
Contributor

phikes commented Nov 29, 2023

I fixed it for now by monkey-patching the method which generates the debug url (put this in some file which is loaded after cuprite, e.g. spec/support/cuprite.rb if you autoload files in that folder):

module Capybara
  module Cuprite
    class Driver
      def debug_url
        response = JSON.parse(Net::HTTP.get(URI(build_remote_debug_url(path: "/json"))))

        devtools_frontend_path = response[0]&.[]("devtoolsFrontendUrl")
        raise "Could not generate debug url for remote debugging session" unless devtools_frontend_path

        build_remote_debug_url path: devtools_frontend_path
      end

      private

      def build_remote_debug_url(path:)
        "http://#{browser.process.host}:#{browser.process.port}#{path}"
      end
    end
  end
end

Edit: I am not sure if this is exclusive to my setup, but I also needed to add a browser option otherwise the devtools websocket wouldn't connect.

  Capybara::Cuprite::Driver.new(app, browser_options: {"remote-allow-origins": "*"}, ...)

I'd gladly create a PR if desired.

@route
Copy link
Member

route commented Dec 11, 2023

@phikes does it open devtools session for you? I have this message on my Mac:
Screenshot 2023-12-11 at 11 16 12
What OS, Chrome version do you have?

@phikes
Copy link
Contributor

phikes commented Dec 11, 2023

Yes, it does. I use Chrome Canary on OS X Ventura 13.0.1. Did you try the browser_options I posted below? Before that I always got this error.

@route
Copy link
Member

route commented Dec 11, 2023

Missed it somehow. Could you please create a PR?

@phikes
Copy link
Contributor

phikes commented Dec 12, 2023

@route done in #252

@route
Copy link
Member

route commented Dec 13, 2023

Thanks!

@route route closed this as completed Dec 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants