want to use Karate UI automation on OS not including GUI, am not friendly Java [duplicate] - ui-automation

I would like to run my karate tests using the chromedriver and chrome present in a docker container. How can this be achieved ? I could only find the documentation on the native version of chrome here

We only support chrome native via Docker. Note that you can use existing Selenium "Grid" infra, for e.g see these:
https://github.com/ptrthomas/karate-devicefarm-demo
https://stackoverflow.com/a/60992292/143475
You can consider creating your own Docker image (which is very common) or use an existing "Selenium flavored" one. Do note that Karate is open-source. Maybe you would be interested to contribute this Docker container :)

Related

Porting a pywinauto script from Windows to X11/Xlib

In my organization, I have been using pywinauto to automate some UI procedures that could not be done using the sole command line interface.
In an effort to move away from windows, I am evaluating the effort to port the UI automation script to a Linux environment (our tool has a Linux version, including a similar GUI).
I have had a look at the python-xlib project. But I have the feeling that it is more a framework to develop native X11 applications rather than perform tests on an existing application (I could not find anything like find_window etc...).
Do you have any advice for an X11 framework to automate UI procedures?
Based on several inputs, I finally came up with the following suggestions:
use pywinauto which has some beta level of Linux support (this support is based on pyatspi2).
use directly pyatspi2 to interact with the widgets if they are exposed. To browse through the exposed widgets of the application you want to automate, you can use accerciser.
finally, many framework exist to use only click + keys + mouse locations and are based on image comparison. There are many around, I have not yet tested any of them.
Finally, since my script is meant to run in a docker environment in CI, I installed Xvfb to run the automation in headless mode, without graphics HW.

Flutter Web Development using an Online IDE

I am doing my development using a Chromebook and wondered if it is possible to develop SPAs using Flutter using an online IDE such as Cloud9 or Codio?
I have managed to install flutter and run it to install dart but am getting stuck as it can't find a Chrome installation.
Is it possible to develop using the cloud IDE and use by local install of Chrome for testing?
You can also check flutlab.io. It's working on Chromebook (Flutter IDE and even Figma integration). Proof: https://www.youtube.com/watch?v=dQ0ATecs7Fo
Currently, the only closer web approaches are:
DartPad
CodePen
Codespaces
Codespaces being a full VS Code which is currently on Beta Access which will allow the same coding possibilities as the desktop one.
Link: https://github.com/features/codespaces
Alternatively (to CodeSpaces, at least); GitPod has a pretty serviceable free tier to build a testing workspace. They actually have a Github template you can fork, then create a workspace from:
https://www.gitpod.io/docs/quickstart/flutter
Another nicety is the stack is open source as of last year.

Find Version of GWT Running On Site

Is it possible to send a javascript command to a site and determine the GWT version running in the browser? The reason I ask is because our QA folks are certifying our software and need a way to look at the version running without taking our word for it by looking at the IDE.
I know that I can do java -jar gwt-dev.jar, but normally we do not deploy that with the software.
The built-in GWT linkers generate a $gwt_version variable in the *.cache.* files.
Assuming you don't have other frames in your app, your GWT app will be in the first frame so you can then get the GWT version used to compile it with frames[0].$gwt_version.

Update java with java?

I was looking around and couldn't find this anywhere, but is there any way to update the JRE through a java application and then to restart said application using the new JRE?
Updating the JRE from within a running Java app. is not something that is commonly done.
Instead look to deployJava.js for ensuring a particular major version of Java is installed, and Java Web Start for ensuring a particular micro-version is available.
These technologies are both related to launching rich clients (applets and desktop apps.) so if the app. has a GUI as mentioned here it should be 'all systems go'.

Selenium::Remote::Driver or WWW::Selenium

Which one should I use for a new project?
What is the difference between them?
Both require the Selenium java-based server to be running (as far as I can manage anyway).
WWW::Selenium uses the older v1 protocol, but has more infrastructure surrounding it. The v2 Selenium server is backwards compatible.
::Driver uses v2 protocol and is newer.
There are differences between v1 and v2 interfaces but the basic idea is the same in both.
So - in summary - not a huge difference between them. I don't think you'd regret your choice whichever you picked.
The main difference between Selenium 1 and Selenium 2 (aka Selenium RC, Webdriver respectively) is the way they drive the browser:
Selenium RC injects javascript to drive the browser while webdriver uses the browsers build in automation capabilities. What this means is that if you are using webdriver PLUS either the C# or Java bindings for example, you will not need the Selenium Server (unless you're not running your tests on the same machine as the browser).
As an FYI, the Selenium-Users as well as Webdriver groups in Google are great resources with an active community of participants. Most questions get answered there relatively quickly. Links below:
Webdriver Google group
Selenium-Users Google group