Skip to content

Commit 5d5dbc8

Browse files
committed
Update readme
1 parent fac3bf9 commit 5d5dbc8

File tree

1 file changed

+72
-35
lines changed

1 file changed

+72
-35
lines changed

readme.md

+72-35
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,84 @@
11
# Selineer
22

3-
Selineer ist eine **Java 8-kompatible Testautomatisierungsbibliothek**, die eine Playwright-ähnliche API bereitstellt, aber auf einem speziellen Adapter aufbaut. Dieses Projekt wurde speziell entwickelt, um in Umgebungen zu funktionieren, in denen nur **Java 8** verfügbar ist, da Playwright Java 8 nicht unterstützt.
3+
Selineer ist eine **Java 8-kompatible Testautomatisierungsbibliothek**, die eine Playwright-ähnliche API bereitstellt, jedoch ohne den Node.js-Server. Stattdessen verwendet Selineer einen speziell entwickelten Adapter auf Basis von **CDP4J**, um direkt mit modernen Browsern zu interagieren. Dieses Projekt wurde speziell entwickelt, um Playwrights Funktionalität auch in Umgebungen mit Java 8 verfügbar zu machen.
4+
5+
---
46

57
## Programmstart
6-
Für ausführbare JARs siehe Releases. Sie werden von GitHub Actions stehts auf dem neuesten Stand gehalten.
78

8-
Mit Manifest-Datei (automatisch erzeugft über build.gradle):
9-
`java -jar <RELEASE-NAME>.jar`
9+
Für ausführbare JARs siehe die Releases. Diese werden durch **GitHub Actions** stets auf dem neuesten Stand gehalten.
10+
11+
### **Mit Manifest-Datei (automatisch erzeugt über `build.gradle`)**
12+
```bash
13+
java -jar <RELEASE-NAME>.jar
14+
```
15+
16+
### **Ohne Manifest**
17+
```bash
18+
java -cp <RELEASE-NAME>.jar selineer.Main
19+
```
1020

11-
Ohne Manifest:
12-
`java -cp <RELEASE-NAME>.jar selineer.Main`
21+
---
1322

1423
## Ziel des Projekts
1524

16-
Das Hauptziel von Selineer ist es, eine **zu Playwright kompatible API** zu schaffen, die jedoch auf einem Adapter basiert. Dadurch wird es möglich, moderne Browser-Testautomatisierung im Playwright-Stil auch mit Java 8 durchzuführen. Darüber hinaus wird die Bibliothek später in der Lage sein, **Cucumber-Testdateien** einzulesen und deren Anweisungen im Browser auszuführen.
25+
Das Hauptziel von Selineer ist es, eine **Playwright-kompatible API** zu schaffen, die moderne Browser-Testautomatisierung im Playwright-Stil ermöglicht – jedoch vollständig mit **Java 8**. Die Bibliothek bietet eine native Java-Lösung, die sich von Playwrights Node.js-Server loslöst und stattdessen auf **CDP4J** basiert.
26+
27+
---
1728

1829
## Funktionsübersicht
1930

20-
1. **Playwright-ähnliche API:**
21-
- Vollständig mit **Java 8** kompatibel.
22-
- Auf **Selenium** basierend, aber mit einer API, die den Stil und die Funktionsweise von Playwright nachahmt.
31+
### **1. Playwright-ähnliche API**
32+
- Vollständig **Java 8-kompatibel**.
33+
- Basierend auf einem speziellen Adapter, der direkt mit **CDP4J** kommuniziert.
34+
- Kein Einsatz des Node.js-Servers erforderlich.
35+
36+
### **2. Cucumber-Testunterstützung**
37+
- Geplante Integration mit **Cucumber**, um Gherkin-Syntax wie `@Given`, `@When` und `@Then` zu interpretieren und auszuführen.
38+
- Erster Fokus auf Tests im **Chrome-Browser**.
2339

24-
2. **Cucumber-Testunterstützung:**
25-
- Integration mit **Cucumber**, um Anweisungen wie `@Given`, `@When` und `@Then` zu interpretieren und auszuführen.
26-
- **Erster Fokus:** Tests in einem **Chrome-Browser** auszuführen.
40+
### **3. Aktuelle Funktionen**
41+
- **Navigation zu Webseiten**: Der Adapter unterstützt bereits das Öffnen von Webseiten und die Navigation.
42+
- **Pläne für die nächsten Schritte**:
43+
- Unterstützung für DOM-Interaktionen wie Klicks und Eingaben mit Selektoren.
44+
- Erweiterung auf komplexere Aktionen, die in Playwright üblich sind.
2745

28-
3. **Einfache Funktionen im ersten Schritt:**
29-
- Unterstützung von `@Given` und `@When`.
30-
- `@Then` ist vorerst nur darauf beschränkt, Screenshots zu machen (z. B. `"Take a Screenshot"`).
46+
---
3147

3248
## Meilensteine
3349

34-
### **Meilenstein 0: Grundlegende Playwright-kompatible API**
35-
- Entwicklung einer API, die Playwright nachahmt, jedoch mit Selenium funktioniert.
36-
- Sicherstellung der vollständigen **Java 8-Kompatibilität**.
50+
### **Meilenstein 0: Grundlegende API (aktuell erreicht)**
51+
- Entwicklung einer API, die Playwright nachahmt, jedoch ohne Node.js funktioniert.
52+
- Unterstützung von **CDP4J** zur direkten Kommunikation mit dem Browser.
53+
- Aktuelle Funktionalität:
54+
- Verbindung zum Browser herstellen.
55+
- Navigation zu Webseiten.
56+
57+
### **Meilenstein 1: Selektor- und Button-Interaktionen**
58+
- Unterstützung für gängige DOM-Aktionen wie Button-Klicks und Texteingaben.
59+
- Erweiterung der API um grundlegende Selektorfunktionen (z. B. `click(selector)`).
3760

38-
### **Meilenstein 1: Unterstützung von `@Given`, `@When`, `@Then`**
39-
- **`@Given`** und **`@When`**: Implementieren der grundlegenden Anweisungen und Aktionen im Browser.
40-
- **`@Then`**: Vorläufige Unterstützung zum Aufnehmen von Screenshots.
61+
### **Meilenstein 2: Erweiterte DOM-Interaktionen**
62+
- Unterstützung für komplexe DOM-Manipulationen und Validierungen.
63+
- Erweiterung der Test-API um die Möglichkeit, Attribute und Strukturen auszulesen.
4164

42-
### **Meilenstein 2: Erweiterte Cucumber-Unterstützung**
43-
- Komplette Unterstützung für Cucumber-Szenarien.
44-
- Erweiterung von **`@Then`**, um komplexere Assertions und Validierungen zu ermöglichen.
65+
### **Meilenstein 3: Integration mit Cucumber**
66+
- Interpretation von Gherkin-Syntax (`@Given`, `@When`, `@Then`).
67+
- Vollständige Unterstützung von Cucumber-Szenarien.
4568

4669
---
4770

4871
## Voraussetzungen
4972

50-
- **Java 8** (erforderlich für maximale Kompatibilität).
51-
- Gradle für das Projekt-Build-System.
52-
- Selenium-Bibliothek (als Basis für die API).
73+
- **Java 8**: Erforderlich für maximale Kompatibilität.
74+
- **Gradle**: Für das Projekt-Build-System.
75+
- **CDP4J**: Für die direkte Kommunikation mit Chrome über das Chrome DevTools Protocol.
5376

5477
---
5578

5679
## Automatische Releases
57-
Siehe Step-Definitionen von GH Actions in .github/workflows/build.gradle.
80+
81+
Selineer verwendet **GitHub Actions**, um kontinuierlich neue Versionen zu bauen und bereitzustellen. Die Konfiguration findest du in `.github/workflows/build.yml`.
5882

5983
---
6084

@@ -75,9 +99,9 @@ Siehe Step-Definitionen von GH Actions in .github/workflows/build.gradle.
7599

76100
---
77101

78-
## Beispiel (zukünftige Funktion)
102+
## Beispiel: Geplante Nutzung
79103

80-
Ein Beispiel für eine Cucumber-Testdatei, die mit Selineer funktioniert:
104+
Ein zukünftiges Beispiel für eine Cucumber-Testdatei, die mit Selineer funktioniert:
81105

82106
```gherkin
83107
Feature: Google Suche
@@ -89,15 +113,28 @@ Feature: Google Suche
89113
Then Take a Screenshot
90114
```
91115

92-
Die obigen Schritte werden von Selineer interpretiert und im Chrome-Browser ausgeführt, auch unter Java 8.
116+
Die obigen Schritte werden von Selineer interpretiert und im Chrome-Browser ausgeführt – vollständig mit Java 8.
93117

94118
---
95119

96120
## Lizenz
97121

98122
Dieses Projekt ist unter der [MIT-Lizenz](LICENSE) lizenziert. Siehe die Lizenzdatei für weitere Details.
99123

100-
## Drittanbieter-Code
124+
---
125+
126+
## Drittanbieter-Bibliotheken
127+
128+
- **[CDP4J](https://github.com/webfolderio/cdp4j):** Zur Kommunikation mit dem Chrome DevTools Protocol.
129+
- **[Playwright](https://github.com/microsoft/playwright):** Inspiration für die API.
130+
- **[Playwright-Java](https://github.com/microsoft/playwright-java):** Teile der Interfaces basieren auf diesem Projekt.
131+
- **Apache License 2.0:** Lizenz für Drittanbieter-Code.
132+
133+
---
134+
135+
### **Wichtige Änderungen**
136+
- **Selenium wurde durch CDP4J ersetzt**, da Selenium in Java 8 nur den WebDriver unterstützt und keine direkte CDP-Unterstützung bietet. Beachte hierzu den notwendigen Compilerschalter `-parameters` in der `build.gradle` des Subprojects cdp4j.
137+
- Der Adapter arbeitet vollständig ohne Node.js und verwendet stattdessen eine native Java-Lösung.
138+
139+
Falls Fragen bestehen oder Feedback benötigt wird, zögere nicht, ein Issue zu erstellen. 😊
101140

102-
Einige Teile dieses Projekts basieren ggf. auf ([Playwright](https://github.com/microsoft/playwright)) bzw. ([Playwright-Java](https://github.com/microsoft/playwright-java)) und sind unter der Apache License 2.0 lizenziert.
103-
Die Apache License 2.0 ist unter `LICENSE-APACHE` zu finden.

0 commit comments

Comments
 (0)