Wie erhalte ich Text vom Elternelement und schließe den Text von Kindern aus (C # Selenium)

8

Ist es möglich, den Text nur von einem Elternelement und nicht von seinen Kindern in Selen zu bekommen?

Beispiel: Angenommen, ich habe den folgenden Code:

%Vor%

In C # (oder welcher Sprache auch immer) werde ich haben:

%Vor%

Der Linktext hat jedoch "Google LinkThis Link führt Sie zur Google-Startseite."

Ohne eine Reihe von String-Manipulationen zu machen (z. B. den Text aller untergeordneten Elemente abzufragen und vom resultierenden Text des übergeordneten Elements zu subtrahieren), gibt es eine Möglichkeit, nur den Text von einem übergeordneten Element zu erhalten?

    
Machtyn 09.03.2015, 15:24
quelle

1 Antwort

6

Dies ist ein häufiges Problem in selenium , da Sie nicht direkt auf Text zugreifen können Knoten - mit anderen Worten, Ihre XPath-Ausdrücke und CSS-Selektoren müssen auf ein tatsächliches Element zeigen.

Hier ist die Liste der möglichen Lösungen für Ihr Problem:

  • Erhalte den Text des Elternelements für jedes Kind, erhalte den Text und entferne ihn aus dem Text des Elternelements. Was du übrig hättest, ist der gewünschte Text - Google Link in deinem Fall.
  • Wenn Sie das Google Link nur zum Erstellen einer Assertion abrufen möchten, könnte es sein, dass Sie überprüfen möchten, ob der Text des Elternteils mit Google Link tariert. Siehe StringAssert.StartsWith() .
  • Erhalte outerHTML des Textes und Feeds des Elternteils an einen HTML-Parser, wie Html Agility Pack . Etwas in dieser Richtung:

    %Vor%
alecxe 09.03.2015, 17:49
quelle

Tags und Links