You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: readme.md
+72-35
Original file line number
Diff line number
Diff line change
@@ -1,60 +1,84 @@
1
1
# Selineer
2
2
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
+
---
4
6
5
7
## Programmstart
6
-
Für ausführbare JARs siehe Releases. Sie werden von GitHub Actions stehts auf dem neuesten Stand gehalten.
7
8
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
+
```
10
20
11
-
Ohne Manifest:
12
-
`java -cp <RELEASE-NAME>.jar selineer.Main`
21
+
---
13
22
14
23
## Ziel des Projekts
15
24
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
+
---
17
28
18
29
## Funktionsübersicht
19
30
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**.
23
39
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.
27
45
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"`).
-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.
45
68
46
69
---
47
70
48
71
## Voraussetzungen
49
72
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.
53
76
54
77
---
55
78
56
79
## 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`.
58
82
59
83
---
60
84
@@ -75,9 +99,9 @@ Siehe Step-Definitionen von GH Actions in .github/workflows/build.gradle.
75
99
76
100
---
77
101
78
-
## Beispiel (zukünftige Funktion)
102
+
## Beispiel: Geplante Nutzung
79
103
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:
81
105
82
106
```gherkin
83
107
Feature: Google Suche
@@ -89,15 +113,28 @@ Feature: Google Suche
89
113
Then Take a Screenshot
90
114
```
91
115
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.
93
117
94
118
---
95
119
96
120
## Lizenz
97
121
98
122
Dieses Projekt ist unter der [MIT-Lizenz](LICENSE) lizenziert. Siehe die Lizenzdatei für weitere Details.
99
123
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. 😊
101
140
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