Hi Alistair,

cant look right now but two things:

  - there are also events in the protocol - if we could hook Pharo into them
    this would solve the problem without abusing delay (because then you will 
    get informed when the page loading is finished)

  - you can write "5 seconds wait" in Pharo

Bye
T. 


> Gesendet: Freitag, 19. Mai 2017 um 17:51 Uhr
> Von: "Alistair Grant" <akgrant0...@gmail.com>
> An: pharo-dev@lists.pharo.org
> Betreff: Re: [Pharo-dev] Chrome DevTools Protocol and Pharo
>
> On Fri, May 19, 2017 at 01:50:28PM +0200, Torsten Bergmann wrote:
> > Alistair Grant wrote
> > 
> > > This looks really interesting, thanks for making it available.  I'm on
> > > linux, so I guess it will need some porting.
> > 
> > I added support for Linux and tried on Ubuntu with Chromium. Works - see 
> > screenshot
> 
> Fantastic, thanks!
> 
> I did have to change your script for it to work on my laptop:
> 
> 1. isInDebugMode is false by default, which meant that chrome wasn't
> launched with remote debugging enabled.
> 
> 2. Retrieving the remotes in GoogleChrome class>>tabPages failed because
> the browser hadn't had time to start up.  I'll submit a pull request
> which adds a retry with delay.
> 
> 3. I initially got a white image.  This appears to be because the script
> doesn't wait for the navigation to complete before taking the
> screenshot.  I just added an ugly delay, but I'm not yet sure what the best
> solution here is.
> 
> 
> | chrome page |
> 
> chrome := GoogleChrome new
>               debugOn;
>               open;
>               yourself.
> page := chrome tabPages first.
> page navigateTo: 'http://www.pharo.org'.
> (Delay forSeconds: 5) wait.
> page captureScreenshot scaledToSize: 200@300.
> 
> 
> > You need to load my OSLinux package (instead of OSOSX) from catalog. Or 
> > start 
> > Chrom manually in debug mode.
> > 
> > In the Pharo settings browser you can set the path to the chrome executable
> > and the debug port to use.
> 
> I doubt that the chrome executable is in that many different places.
> Would you be open accepting a pull request which adds (what I assume is)
> the Ubuntu 16.04 default location?
> 
> 
> > Will add Windows support as well (using my OSWindows package)
> > 
> > > Do you know how the DevTools protocol relates to headless chome, which
> > > will be available in Chrome 59?
> > > See https://developers.google.com/web/updates/2017/04/headless-chrome
> > 
> > Dont know - just try it.
> > 
> > > In particular, is it possible to dump the DOM with your package?
> > 
> > I've seen that Brackets editor as well as Netbeans open Chrome to
> > display webpages when editing and refresh when typing. Wanted
> > to find out how it was done.
> > 
> > I have not implemented the full protocol. Only what was needed to show
> > that it is possible and to do things like grabbing screenshots from websites
> > using Pharo.
> 
> I've found a page that describes accessing the DOM, so it looks like it
> should be possible.  I'll see what I can do...
> 
> > There is a DOM domain that one could wrap - basically it is just
> > sending JSON around, see
> > https://chromedevtools.github.io/devtools-protocol
> > 
> > With 
> > 
> >  chrome := GoogleChrome open.
> >  chrome jsProtocolJSON.
> >  chrome browseProtocolJSON
> > 
> > you can now even retrieve the Protocol as JSON for the specific browser. 
> > With a little bit more work it should be possible to even generate 
> > the wrapper classes/methods from such a protocol spec.
> 
> Thanks again,
> Alistair
> 
> 
> 
> 

Reply via email to