Hallo zusammen,
mein Problem is es einen exakten Textausschnitt auf einer Webseite zu auszulesen.
Meine aktuelle Lösung ist mit Xpath und sie funktioniert, aber ich möchte Xpath vermeiden, entsprechend eine andere Lösung dafür haben.
Hinzu kommt, dass ich nur den vollständigen Text abgleichen kann und nicht nur einen bestimmten Textausschnitt.
Ich habe es mit cssSelector und mit der id="top" versucht und beides funktionerte nicht. Zumindest habe ich es offenbar nicht richtig hinbekommen.
Ich möchte aus diesem Textausschnitt:
Dein Username ist: username1
Nur diesen Teil:
username1
Umgebung:
openjdk 11 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
JUnit5
selenium-java-4.0.0-alpha-1
Eclipse Version: 2021-03 (4.19.0)
HTML:
[CODE lang="java" title="HTML"]<vaadin-horizontal-layout style="width: 100%; align-items: center;" id="top" slot="navi">
</iron-icon>
<iron-icon style="cursor: pointer; color: var(--lumo-primary-color); margin-right: 20px;" icon="vaadin:top-o" title="Sitename">
</iron-icon><iron-icon style="cursor: pointer; color: var(--lumo-primary-color); margin-right: 20px;" icon="vaadin:tabs" title="new window">
</iron-icon>
<span style="margin-left: auto; color: var(--lumo-primary-color); margin-right: 20px;">Your user name is: username1</span>
</vaadin-horizontal-layout>[/CODE]
So wie ich das verstehe ist das kein iron-icon.
So habe ich es bisher gelöst, so möchte ich es aber nicht haben:
Java Selenium Xpath:
[CODE lang="java" title="Selenium Java"]System.out.println("text username");
Assert.assertEquals("Dein Username ist: username1", driver.findElement(By.xpath("/html/body/vaadin-app-layout/vaadin-horizontal-layout/span")).getText());
System.out.println("Get Text: ");
System.out.println(driver.findElement(By.xpath("/html/body/vaadin-app-layout/vaadin-horizontal-layout/span")).getText());[/CODE]
Hat jemand eine Idee wie ich das lösen kann?
Vielen Dank und viele Grüße
mein Problem is es einen exakten Textausschnitt auf einer Webseite zu auszulesen.
Meine aktuelle Lösung ist mit Xpath und sie funktioniert, aber ich möchte Xpath vermeiden, entsprechend eine andere Lösung dafür haben.
Hinzu kommt, dass ich nur den vollständigen Text abgleichen kann und nicht nur einen bestimmten Textausschnitt.
Ich habe es mit cssSelector und mit der id="top" versucht und beides funktionerte nicht. Zumindest habe ich es offenbar nicht richtig hinbekommen.
Ich möchte aus diesem Textausschnitt:
Dein Username ist: username1
Nur diesen Teil:
username1
Umgebung:
openjdk 11 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
JUnit5
selenium-java-4.0.0-alpha-1
Eclipse Version: 2021-03 (4.19.0)
HTML:
[CODE lang="java" title="HTML"]<vaadin-horizontal-layout style="width: 100%; align-items: center;" id="top" slot="navi">
</iron-icon>
<iron-icon style="cursor: pointer; color: var(--lumo-primary-color); margin-right: 20px;" icon="vaadin:top-o" title="Sitename">
</iron-icon><iron-icon style="cursor: pointer; color: var(--lumo-primary-color); margin-right: 20px;" icon="vaadin:tabs" title="new window">
</iron-icon>
<span style="margin-left: auto; color: var(--lumo-primary-color); margin-right: 20px;">Your user name is: username1</span>
</vaadin-horizontal-layout>[/CODE]
So wie ich das verstehe ist das kein iron-icon.
So habe ich es bisher gelöst, so möchte ich es aber nicht haben:
Java Selenium Xpath:
[CODE lang="java" title="Selenium Java"]System.out.println("text username");
Assert.assertEquals("Dein Username ist: username1", driver.findElement(By.xpath("/html/body/vaadin-app-layout/vaadin-horizontal-layout/span")).getText());
System.out.println("Get Text: ");
System.out.println(driver.findElement(By.xpath("/html/body/vaadin-app-layout/vaadin-horizontal-layout/span")).getText());[/CODE]
Hat jemand eine Idee wie ich das lösen kann?
Vielen Dank und viele Grüße