[JAVA] Was tun, wenn Sie den Text eines Elements in Selen nicht abrufen können?

Selen, das häufig zum Schaben verwendet wird, ist eine Gegenmaßnahme, wenn der Text eines Elements nicht gut erhalten werden kann.

Einfach süchtig zu werden

Dieses Mal werde ich zusammenfassen, wie mit diesen beiden Punkten umzugehen ist.

Wenn der Klassenname Leerzeichen enthält

Mit JavaScript, auch wenn es Leerzeichen enthält

document.getElementByClassName("class name").innerText;

Schreiben Sie einfach den Klassennamen so wie er ist Sie können das Textelement des angegebenen Klassennamens leicht abrufen. Wenn Sie es durch Selen ersetzen möchten,

WebDriver.findElement(By.cssSelector("div[class='class name']")).getText().toString();

Mit By.cssSelector wie Wenn Sie mit "WebDriver.findElement (By.cssSelector (" {Tag Name} [class = '{Klassenname}'] ")" angeben, können Sie das Textelement gut erhalten.

Weiter, wenn der Klassenname übereinstimmt, der Text jedoch nicht abgerufen werden kann

Ich habe die Arten von Element-Tags, die mit Selenium erhalten werden können, nicht explizit untersucht. Hauptsächlich beschränkt auf "div", "a", "table", "tr", "td" Geben Sie das Element direkt in Xpath oder direkt an, um das Tag "span", das Tag "b" und andere Elemente zu identifizieren. Sie können es erhalten, indem Sie den Klassennamen des Elements des div -Tags im übergeordneten Element des Elements angeben, das Sie abrufen möchten.

<div class="div_class_name">
    <b class="b_class_name">
        <span class="span_class_name">Der Text, den Sie erhalten möchten</span>
    </b>
</div>

In diesem Fall können Sie den Text erhalten, indem Sie den Klassennamen "div_class_name" im Tag "div" verwenden.

Bei Verwendung von Xpath Konzentrieren Sie die Maus mithilfe der Chrome-Entwicklungstools auf das Element Rechtsklick → [Kopieren] → [XPath kopieren] Da kann man den XPath mit bekommen

image.png

WebDriver.findElement(By.xpath("{xpath}")).getText();

Sie können den Text mit erhalten.

das ist alles.

Es weicht vom Thema des Artikels ab, Da es beim Scrollen zwischen JavaScript und Selen eine leichte Diskrepanz gibt, Auch hier müssen Sie vorsichtig sein.

Selbst wenn Sie es mit JavaScript gut machen können, funktioniert es mit Selen manchmal nicht wie erwartet Im schlimmsten Fall ist es möglich, JavaScript-Code in Java-Code einzubetten und auszuführen Alles was Sie wissen müssen ist das!

Recommended Posts

Was tun, wenn Sie den Text eines Elements in Selen nicht abrufen können?
[Schienen] Was tun, wenn mit der Fehlermethode keine Fehlermeldung angezeigt wird?
Was tun, wenn in GlassFish eine java.io.IOException auftritt?
Was tun, wenn der Befehl Rails unbrauchbar wird?
Was tun, wenn in bind.pry eine falsche Anzahl von Argumenten angezeigt wird?
Was tun, wenn in Docker ein gcc-Fehler auftritt?
Was tun, wenn Sie Ihr Root-Passwort unter CentOS7 vergessen haben?
[Rails] Was tun, wenn Sie mit form_with keine Parameter abrufen können?
Was tun, wenn während des Rails-Testcodes ein Fehler bei der Standardauthentifizierung auftritt?
Was tun, wenn ein Argumentfehler auftritt? Falsche Anzahl von Argumenten (gegeben 2, erwartete 0) in Ihrem RSpec-Test
Was tun, wenn Sie in Thymeleaf Layout eine groovige Warnung erhalten?
Was tun, wenn Sie das Plug-In nicht vom Eclipse Marketplace installieren können?
Rufen Sie den Typ eines Elements eines Arrays ab, um festzustellen, ob es sich um ein Array handelt
Was tun, wenn Sie eine [HTTP-Anforderung hat zu lange gedauert] Fehler in Docker.
Was tun, wenn der Rails-Server nicht gestartet werden kann?
Was tun, wenn Sie das mit bootstrap-select erstellte Auswahlfeld nicht aktivieren können?
Was tun, wenn Um die fehlende Version zu installieren, führen Sie `gem install bundler: 2.1.4` aus
Was tun, wenn Sie gem'bcrypt 'in Ihre Gemfile eingeben und bei der Bundle-Installation eine Fehlermeldung erhalten?
Was tun, wenn die Meldung "Ein Server läuft bereits" angezeigt wird. Fehler beim Versuch, den Rails-Server zu starten
Was tun, wenn eine javax.net.ssl.SSLHandshakeException angezeigt wird: Remote-Host hat während des Handshakes im IBM JDK die Verbindung geschlossen
[Java] Was tun, wenn in Eclipse die Fehlermeldung "Nicht zulässig auf Quellenebene unter 1.X" angezeigt wird?
Was tun, wenn in Rails 6.0 die Warnung "Der Eindeutigkeitsprüfer erzwingt in Rails 6.1 keinen Vergleich zwischen Groß- und Kleinschreibung mehr erzwingt" angezeigt wird
Was tun, wenn Sie das JDK, das Sie nach der Migration von bash nach zsh unter macOS in SDKMAN eingefügt haben, nicht finden können?
[Rails] Was tun, wenn Sie versehentlich eine Bundle-Installation in einer Produktionsumgebung in Ihrer lokalen Umgebung durchführen?
Was tun, wenn im Testcode der Steuereinheit in Rails der Fehler "302" angezeigt wird?
Was tun, wenn die Rails-Seite im Rails-Lernprogramm 1.3.2 nicht angezeigt wird?
Was tun, wenn Cloud 9 im Rails-Lernprogramm voll ist?
Was tun, wenn Sie sich über OpenSSL mit pyenv install ärgern?
So ermitteln Sie die Länge einer Audiodatei mit Java
Was tun, wenn Sie in Eclipse eine JRE auswählen und "Die ausgewählte JRE unterstützt die aktuelle Konformitätsstufe 11 nicht" erhalten?
Was tun, wenn beim Versuch, mit Eclipse zu erstellen, ein Fehler in der gemeinsam genutzten JNI-Bibliothek auftritt?
Was tun, wenn das Präfix c in JSP nicht gebunden ist?
Was tun, wenn Ihnen der von swagger-codegen-cli generierte Code nicht gefällt?
Was tun, wenn auf GitHub eine MiniMagick-Sicherheitsanfälligkeitswarnung angezeigt wird?
Was zu tun ist, wenn weitere Fehler beim Parsen von http-Headern auftreten, wird auf Debug-Ebene protokolliert. In Tomcat 8.5.37
Was tun, wenn der Server-Tomcat stirbt?
Was tun, wenn Sie falsche Informationen eingeben?
Was tun, wenn der Vorgang nicht zulässig ist, wenn ein Befehl im Terminal ausgeführt wird?
Was tun, wenn in CircleCI der Fehler zu lang ohne Ausgabe (über 10 m0s) angezeigt wird?
[Swift] So ermitteln Sie die Anzahl der Elemente in einem Array (Super Basic)
Was tun, wenn Sie glauben, dass Sie mit IntelliJ IDEA CE nicht Groovy-> Java können?
Wenn Sie die Testabdeckung privater Methoden in JUnit erfüllen möchten
Was tun, wenn Sie Gemfile oder .bundle / directory nicht finden konnten?
Was tun, wenn die Änderungen nicht in der JAR-Manifestdatei berücksichtigt werden?
Was tun, wenn die ffi-Installation beim Starten einer Anwendung in Rails fehlschlägt?
Was tun, wenn Sie aktiviert haben? Verwenden Sie die WSL2-basierte Engine in Docker Desktop mit unzureichender WSL2-Installation