Aus dem Beitrag kommend in dem nach einer automatischen Lösung gesucht wurde und Windows auf VPS angedacht war, um Klicks zu automatisieren und einfache curl Scripte bzw. GET / POST Anfragen nicht mehr ausreichen hier ein Beitrag wie man sowas auf einem einfachen VPS und zwar eigentlich auf einer headless Linux / Debian Maschine realisieren kann. Sollte das interessanter sein, gibt es vielleicht dazu noch ein ausführlicheres Tutorial.
Auf einem headless VPS 200 mit Debian bullseye habe ich folgendes ganz simples Beispiel realisiert das in einem Docker Container und mit Chrome Browser läuft: (Source liegt bei GitHub)
- Öffne netcup Forum URL
- Suche klicken
- Eingabe von "Selenium" und etwas Warten
- Verifizieren dass bestimmter Beitrag angezeigt wird
Auf die Aufzeichnung in dem VNC Testcontainer habe ich verzichtet weil der dafür verwendete ffmpeg den kleinen VPS 200 total fertig macht und ich noch nicht weiß woran das genau liegt. Dem Debian bullseye habe ich praktisch folgendes installiert und die genauen apt Pakete liefere ich noch nach wenn das nicht reicht.
default-jdk, docker-ce, git, maven
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running integrationtest.SeleniumContainerTest
[main] INFO org.testcontainers.dockerclient.DockerClientProviderStrategy - Loaded org.testcontainers.dockerclient.UnixSocketClientProviderStrategy from ~/.testcontainers.properties, will try it first
[main] INFO org.testcontainers.dockerclient.DockerClientProviderStrategy - Found Docker environment with local Unix socket (unix:///var/run/docker.sock)
[main] INFO org.testcontainers.DockerClientFactory - Docker host IP address is localhost
[main] INFO org.testcontainers.DockerClientFactory - Connected to docker:
Server Version: 20.10.5+dfsg1
API Version: 1.41
Operating System: Debian GNU/Linux 11 (bullseye)
Total Memory: 1982 MB
[main] INFO org.testcontainers.utility.ImageNameSubstitutor - Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
[main] INFO org.testcontainers.utility.RegistryAuthLocator - Failure when attempting to lookup auth config. Please ignore if you don't have images in an authenticated registry. Details: (dockerImageName: testcontainers/ryuk:0.3.3, configFile: /root/.docker/config.json. Falling back to docker-java default behaviour. Exception message: /root/.docker/config.json (No such file or directory)
[main] INFO org.testcontainers.DockerClientFactory - Ryuk started - will monitor and terminate Testcontainers containers on JVM exit
[main] INFO org.testcontainers.DockerClientFactory - Checking the system...
[main] INFO org.testcontainers.DockerClientFactory - ✔︎ Docker server version should be at least 1.6.0
[main] INFO org.testcontainers.DockerClientFactory - ✔︎ Docker environment should have more than 2GB free disk space
[main] INFO org.testcontainers.containers.SeleniumUtils - Selenium API version 3.141.59 detected on classpath
[main] INFO 🐳 [selenium/standalone-chrome-debug:3.141.59] - Creating container for image: selenium/standalone-chrome-debug:3.141.59
[main] INFO 🐳 [selenium/standalone-chrome-debug:3.141.59] - Container selenium/standalone-chrome-debug:3.141.59 is starting: 325188f7f84804e2862a84af6b3a4f495bee1004e48f95c14566990c7ffca8c7
[main] INFO 🐳 [selenium/standalone-chrome-debug:3.141.59] - Container selenium/standalone-chrome-debug:3.141.59 started in PT5.843946S
Apr 27, 2022 12:23:53 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Start Chrome and open URL: https://forum.netcup.de/
Click the Search button with ID: userPanelSearchButton
Fill in the search input element: pageHeaderSearchInput
Waiting 2000 milliseconds.
Verifying that the Thread 'Windows auf VPS 200 ?' shows up in the search results.
End. We are Done here.
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 17.441 sec
Running integrationtest.SeleniumTestcontainerRecordingTest
Alles anzeigen
Ideensammlung:
Wenn es nicht so grafisch aufwendig sein muss und die einfaches headless Browser reichen, wären auch Beispielscripte drin wie man in den Webhosting WCP / Plesk Masken Sachen konfiguriert. Mein erstes Script würde wahrscheinlich für alle Domains mal schnell webmaster@ und postmaster@ anlegen z.B. als Weiterleitung auf eine definierte E-Mail-Adresse. Aber vielleicht frage ich das besser erstmal im plesk Unterforum ... bevor mit Kanonen auf Spatzen geschossen wird.