Xpath Syntax für "und nicht enthält"

8

Hier ist der XPath, den ich verwenden möchte:

%Vor%

Ich bin nicht sicher, was die richtige Syntax dafür ist. Grundsätzlich sieht das HTML wie folgt aus:

%Vor%

Ich möchte den Fall auswählen, in dem der HTML-Code entweder typeA oder typeB ist, aber nicht ng-hide .

    
Matt 29.10.2014, 21:11
quelle

3 Antworten

9

Sie könnten so etwas tun:

%Vor%

Sie sollten auch einen Blick auf werfen für ein Attribut, das eine bestimmte Zeichenfolge enthält? , um zu sehen, warum die contains() oben möglicherweise nicht genau mit dem übereinstimmt, was Sie beabsichtigen.

Um beispielsweise genau das zu erreichen, was Sie vorhaben, können Sie Folgendes verwenden:

%Vor%

Es ist viel einfacher in XPath 2.0, aber ich bin mir nicht sicher, ob es von qtp unterstützt wird. Wenn Sie concat(' ',@class,' ') zu einer Variablen machen könnten, könnten Sie auch den XPath bereinigen.

Hier ist ein 2.0-Beispiel für alle Fälle:

%Vor%     
Daniel Haley 29.10.2014 21:47
quelle
1

contains() ist eine Funktion, die zwei Argumente akzeptiert: contains (A, B) gibt true zurück, wenn B eine Teilzeichenfolge von A ist.

Damit würde Ihre Syntax gültig, wenn Sie Ihr "=" durch "," ersetzen: contains(@class, 'X') anstelle von contains(@class = 'X') . Aber ich weiß nicht, ob es dann gegen alle möglichen Eingabedaten das machen würde, was man will - das ist eine andere Frage.

    
Michael Kay 30.10.2014 12:00
quelle
0

In Ihrer Frage ist die Syntax falsch, wie Michael Kay darauf hingewiesen hat.

Wenn ich Ihre Frage richtig verstanden habe, möchten Sie eine Klasse auswählen, die "xyz ng-binding ng-scope" aber nicht "ng-hide" enthält, auch wenn sie "typeA", "typeB" oder nicht enthält.

Ich würde so etwas verwenden:

%Vor%

Ich finde oft, dass die Leerzeichen in dieser Situation ein Problem verursachen. Ich habe Attribute gesehen, die führende und / oder nachstehende Leerzeichen und / oder mehrere aufeinanderfolgende Leerzeichen in der Mitte haben. Die Verwendung von Normalize-Space beseitigt dieses Problem.

Eine andere Sache ist, wenn QTP uns mehrere Übereinstimmungsfehler gibt, können wir diesen Trick verwenden, um zu sehen, ob der XPath funktioniert. Dann mach weiter, um den richtigen zu finden.

%Vor%     
wokbot 02.11.2014 14:24
quelle

Tags und Links