Express NodeJS Selenium - Video Recording the remote browser activity - node.js

I am working on NodeJS Selenium tool and executing the test cases on a remote machine over HTTP. I am capturing screenshots of the web page at every specified point, so that the user an see what happened in each page.
But for improved user experience, I wanted to record the video of what is happening in remote machine (like opening the browser, entering text inputs, clicking on buttons etc.)
I am using screen-capture-recorder package to record the video. Which is working fine if I execute locally. When I execute the same thing on remote machine via HTTP, it is not able to record the video. I guess this is because the session is not interactive to record the video. Means it doesn't find GUI to record.
Are there any other solutions to achieve this?

Related

How Mirror webpages as Web Video Wall into another browser?

We have a video wall with some monitors. each one is plugged into a Raspberry PI 3.
Mostly we just are showing webpages into the video wall (reports, status etc)
Today we control the content of each raspberry using VNC. I was wondering if is there a web service or plugin that allows me to just configure the URL that I wish to show on each screen. Plus, Sometimes we split the each screen into 2 or more webpages.
Is there any web app, chrome plugin or web service that allows me do that?
Thanks
OBS, I don't know if here is the right place to this kind of question. If is there another community where i could ask this, i will be glad to know.
I can not give a complete and exhaustive answer, since you do not provide any description of how it should look and how you want to control it.
Let's start with the fact that almost every browser at startup you can specify URL and start the browser like this:
# firefox https://google.com
Then the browser opens with the page you need.
To close the page, you can kill the browser with a command like this
# killall firefox
You can run commands on the Raspberry PI using ssh, it's much easier than running the VNC session.
Most likely you may encounter a problem when you receive a message stating that the browser can not connect to the display. This is easily correctable with something like:
# export DISPLAY=:0
In order for the browser to always be in full-screen mode and not to lose its settings, you can configure it correctly, close all the tabs and save its configuration from ~/.mozilla/ (for firefox), and then restore it from backup every time you start it.

Embedding (Youtube/Vimeo) Videos on a Raspberry Pi

I'm currently working with Raspberry Pi 3's to show webpages from our server, on site.
In this case, on site means about a 100 remote locations like grade schools, where we can't just walk in and update stuff (so making a site offline is a no-go, working with serviceworkers to cache is okay).
My problem is as followed:
When I try to show videos and/or images on the pages, the raspberry's browser eventually crashes.
Because the remote locations don't always have working internet and we do need to show something, we can't rely on refreshing every page.
We've tried both YouTube and Vimeo as video providers, but both crash eventually.
Can someone help or suggest some options?

Chrome doesn't load webapp on NodeJS

After yet another reboot of my macbook, chrome stopped loading my webapp.
It returns literally nothing in browser window and the only thing i managed to find is that requests in chrome's timeline has status "cancelled".
If I'm trying to get there from another website (by changin url and hitting "return" button), it also does nothing, it doesn't even try to reload page.
Other browsers load it fine atm.
I've received this report from a user about couple of weeks ago, but now i've got it myself, so I assume the problem is in my server.
Recently, i've found that my android phone also can't access the website from chrome browser. The behaviour is the same. However, android default browser has access.
What could that be? Where should i look?
I'd provide more information, but there is no error codes or messages of any kind, so i have no idea what information could help in this question.
Also, i have a chrom browser extension (similar to Pocket), which also is unable to access server. The notable difference is that extension uses Socket.io only.
There were no recent code changes on server side except letsencrypt certificate renewal.
I've tried this:
server restart
different ip/locations (vpn and public access points)
chrome data cleanup / chrome version degrade / chrome reinstallation / chrome canary installation
tried to open server address directly - no difference

Can i use Chromecast as a server?

Studying the possibility to achieve the following:
We have a CMS that from time to time posts to a web hook a media URL (video) (public internet hosted)
This web hook post we would like to post directly to a ChromeCast which is plugged in to a TV
Questions:
1. Can a web server like nodeJS be installed on a chrome cast?
2. Is it possible to use for example DynamicDNS to link the Chromecast to a domain name so the post from the web hook can be made?
ChromeCast has a sender API which allows you to "send" content to a specific Chromecast. Right now, the sender API works on Android, IOS and Chrome OS. You can read more about it here: https://developers.google.com/cast/docs/sender_apps.
And, here's how a receiver application that would receive your content on the ChromeCast would work: https://developers.google.com/cast/docs/receiver_apps or if you're content is a standard type, then you can use a prebuilt receiver application without building your own.
To answer your specific questions:
Can a web server like nodeJS be installed on a chrome cast?
No, not without enormous hacking and development yourself to basically take over the hardware somehow and get your own stuff to run on it.
Is it possible to use for example DynamicDNS to link the Chromecast to
a domain name so the post from the web hook can be made?
Not that I know of.
The chromecast has an android like google chrome operating system. It is possible to root it, but you will not be able to (to my knowledge) get a server on it. I would suggest taking a look at the Raspberry Pi. You should be able to run a slim server on it. After you get that set up it might be feasible to pass command line commands to chrome or another web browser to display the data you like. A browser is not necessary, but I'm not sure if you know of any other way to display the media.
A different approach would be to have a server anywhere (could be in your home) and have something like the raspberry pi (any computer for displaying the content) connect to a webpage hosted with that server. Using websockets something like socket.io, you could set it up so that the server could send messages (url of video) to the browser session you have open. The javascript of your webpage would then use that message to open that url.

Accessing file system in an iOS device

I'm an absolute newbie to Xamarin world. I'm working on a web application where a user completes a long form (say some 100+ fields) and then submits the form which will write the information to a database. One of the requirement is user should be able to load the form, resume his work even when he is Offline( No internet connection). I have used HTML5 Application cache, Local Storage in Html5, KnockOut.JS, Java script so that for every 2 seconds all the user form information is saved to Local Storage of the browser. But lately, I noticed with few users that the forms are getting deleted sometimes due to an iOS update. Also I don't want to rely on browsers cookie/cache to store this information.
I want to find out what my options are with Xamarin. Can I use a component like 'UIWebview' in the Xamarin app to launch my web application and then access the file system of iOS of that Xamarin app from the browser launched ?
Sure you can!
One launch image plus one screen with UIWebView is what you need for your task. You can handle UIWebView's event to save and load it's state.
Good news is that such app could be small enought to build it using free (Starter) version of platform.

Resources