running headless chrome in an microsoft azure web app - azure

I am currently using phantomjs to generate screenshots of web pages.
Due to various issues including web fonts, and video tag support, I would like to try switching to headless chrome.
Has anyone had success running headless chrome in an azure web app?
I cannot find a .net api, and assume I need to run node.js with puppeteer If I want a javascript api similar to phantomjs.

Right now most of the big libraries are made for NodeJS. It's possible to run Chrome headless without it, but you'll need a library for your .NET API to effectively communicate with Chrome. If none exist, then the protocol itself is documented here, and you could build one for .NET.
If you're struggling to get Chrome running on Azure I have a service that offers Docker images, which could be as simple as a few commands to have up and running (located here). Other than that there's a few open-source options out there, but they have differing issues and uses-cases.

Related

Chrome extension accessing UWP app?

We have chrome and FF extensions which works with a native messaging app. Recently we developed edge extension and a UWP app which works in the same way. Now the user has to install two separate native messaging apps if they want use any chrome/FF/Edge browsers.
My question is, is it possible for Chrome/FF extension talk to windows UWP app?
Unfortunately no. On Windows, both Chrome and Firefox use the registry to locate the native applications manifest, and Windows Store apps are forbidden from writing to the registry. (ref: Prepare to package an app (Desktop Bridge)
If something changes (Store apps gain the ability to alter the registry, or Chrome and Firefox introduce an alternative way to locate the manifest), then it might be possible. Though likely not via the UWP app directly. UWP apps appear to support standard input and output, but the way they are run prevents access to it. It might however be possible to create an intermediary Win32 app that can communicate with the UWP app via the AppService and the browser extension via stdio.
Afterthought: Enpass Password Manager (win32) was ported to the Windows Store reportedly because of API issues, and has a browser extension for Chrome and Firefox. Might be worth asking them how they pulled it off. I did some more digging, and figured it out. localhost loopback, a custom url scheme, web sockets, and browser verifications is how they are doing it. Not an ideal solution, but it seems to work.

Selenium WebDriver Automation script for application Developed using NW.js Technology

Iam trying to Automate my application which is a standalone application build using NW.JS technologies. and based on chromium embedded framework
NW.JS is a desktop application with web technologies implementation.
The Application to be tested is actually embedded inside the Web Took Kit and looks like a normal window application.
It does not make use any of the traditional browsers(IE/Firefox/Chrome/Safari)
I automated the basic login functionality of my application using selenium web driver and python script and when i run it, it invokes my application but unable to identify the objects in the App.
I tried with other testing tools, like
UFT
TestComplete
White
Ranorex
WinTask
All of these tools are invoking my application, but unable to identify the objects inside the App like login link etc.
when i use object spy,it always highlights the main window only and does not identifies the objects inside the application
My developer was saying that the app uses web view tag?
developer has given us the Chrome Dev tools, using which we can inspect the objects properties, but despite this i still see errors when i try to run my automation script developed in selenium python script
Not sure which testing framework and test automation tools will match my requirements
Any one can please guide me, Iam struggling with the Test Automation tools to make it identify the objects inside the application
The Application is built using CSS3.0,HTML5.0,JavaScript,C++ and node.js Technologies
WebDriver is extended by several broweser drivers which selenium supports including 3rd party browser drivers... Find your browser driver in the link http://www.seleniumhq.org/download/ . and you should include that in your project otherwise it tries to trigger firefox driver which is inbuilt. If you dont find your browser driver type means selenium webdriver is not the one for you..... You should try some other automation tools

Get list of Chrome extensions from Chrome app

I have a Chrome extension that uses the chrome.management API to get a list of installed Chrome extensions and apps. The problem starts because I also want to use the chrome.syncFileSystem API which only seems to be available to Chrome apps.
If I switch the extension to an app, I can no longer use the chrome.management API. I haven't been able to find an API to access the installed extensions from an app. Any tips?
I don't think you can, not without having both an extension and an app.
Google has a private API to do that, but for public API, they want apps to be as independent as possible from the browser.

Is there a way to package chrome apps using nodejs-webkit

Lets say i have an app and i want it to be executable standalone. I've found that you can do that with normal webpages, webapps, using https://github.com/rogerwang/node-webkit.
But if its chrome packaged app how do you do that.
I know it's possible as you can see in slides it uses webkit.
https://speakerdeck.com/u/zcbenz/p/node-webkit-app-runtime-based-on-chromium-and-node-dot-js
Theoretically it is possible but you will have to implement by hand all of the chrome apis you use in your chrome app

App for Google Chrome

I have created an App for google chrome which just opens a web page. I am new in the topic
of Apps. I was thinking if it is possible to execute some linux command by using an App
in google chrome. For instance, an App which can open a terminal or open a program
installed in my machine like Gimp, Kate, Libre Office ...
From the instructions in the web page of google I saw that the only actions for an App
are limited to open a web address but I dont know if it is possible to extend the capabilities
of the Apps,
Regards.
Aren't apps sandboxed into the Google Chrome Process to ensure they can't affect other processes and for other security reasons. If so, you won't be able to execute programs/commands or view the User's Files unless you use some workaround such as Google's Native Client.
Google has locked down capabilities to stop malicious Web Apps from executing code and bringing malware and exploits.
You can write a NPAPI Plugin or a custom URI scheme associated to Unix terminal.

Resources