Mit QTP11 deskriptive Programmierung, wie kann ich überprüfen, dass ein element nicht vorhanden ist?
Ich bin ein QTP Neuling.
Ich bin in der Lage zu schreiben Aussagen wie diese, mit dem Objekt-Repository:
If Trim(DataTable.Value("ExpectedValue")) = "" _
And Not Browser("MyApp").Page("MyPage").WebElement("MissingDataBanner").Exist Then
Reporter.ReportEvent micFail, "MissingDataBanner", "Element expected"
End If
Während ich verwenden kann, deskriptive Programmierung zu prüfen, Eigenschaften der Elemente, die existieren...
If Not Browser("MyApp").Page("MyPage").WebElement("text:=" + DataTable.Value("ExpectedValue")).Exist Then
Reporter.ReportEvent micFail, "My Data Field", "Element does not contain expected value"
End If
wenn ich versuche, so etwas wie dieses:
If Trim(DataTable.Value("ExpectedValue")) = "" _
And Not Browser("MyApp").Page("MyPage").WebElement("text:=" + DataTable.Value("ExpectedValue")).Exist Then
Reporter.ReportEvent micFail, "MissingDataBanner", "Element expected"
End If
natürlich QTP kann nicht finden, die web-element, und der test Fehler beim Zugriff des Exist-Methode.
Gibt es eine Möglichkeit, beschreibende Programmierung zu überprüfen, dass ein element NICHT auf der Seite vorhanden sind?
InformationsquelleAutor neontapir | 2012-11-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
werfen Sie einen Blick auf die erste if-Anweisung und besonders diese Zeile:
If Trim(DataTable.Value("ExpectedValue")) = ""
. Sie sagen 'Wenn ExpectedValue leer ist Und das Objekt nicht vorhanden ist, dann einen Fehler melden' Ist das wirklich, was Sie wollen, oder wollen Sie testen die ExpectedValue 'nicht leer':If Trim(DataTable.Value("ExpectedValue")) <> ""
?Verkettung im VBScript erfolgt mit einem
&
Zeichen und nicht mit einem+
Diese AussageBrowser("MyApp").Page("MyPage").WebElement("text:=" + DataTable.Value("ExpectedValue")).Exist
beheben zuBrowser("MyApp").Page("MyPage").WebElement(0).Exist
, was zu unerwarteten Ergebnissen führt. Verwenden"text:=" & DataTable.Value("ExpectedValue")
statt.QTP hat einige Macken, Tests auf .existieren Eigenschaft von Objekten ist einer von Ihnen (ich spreche für QTP10 hier). Es klingt seltsam, aber in einigen Fällen (leider kann ich mich nicht erinnern, welche einst, wenn ich einen Ersatz-minut, ich werde versuchen, um es zu reproduzieren),
.exist
False zurück, die nicht erkannt wird nativ als Falsch, in einer bedingten Anweisung. Der beste Weg, um zu testen, ob ein Objekt nicht vorhanden ist, explizit zu testen, ob die vorhanden ist-Eigenschaft gleich false:If Browser("foo").Page("bar").WebElement("xizzy").exist = False then print "Object does not exist!)
.Tipp: Um die Geschwindigkeit Ihres Tests können Sie den vorhanden mit einem timer, wenn Sie
.exist(0)
es wird die Prüfung der Existenz des Objekts unmittelbar, ohne Einsatz der Synchronisations-Timer, die Sie eingestellt haben in Ihrem testsettings.Vielleicht ist dies nicht direkt eine Lösung deines Problems, aber es gibt noch mehr zuverlässige Ergebnisse und wird letztlich dazu führen Sie zu der Lösung. Testen, ob ein Objekt nicht vorhanden ist mit der
.Exist
Methode ist der korrekte Weg, dies zu tun. Wenn Sie immer Fehler es ist etwas anderes falsch. Zum Beispiel der browser oder die Seite existiert nicht.Ah, mein Fehler, die im ersten Punkt. Ich hoffe, Sie haben alles, was jetzt läuft? Wenn Sie irgendeine andere Frage bezüglich der QTP (oder VBScript), haben wir eine kleine, aber regelmäßig aktive Gruppe von QTP user hier auf SO kämpfen die C# - Mehrheit.
Danke, ich weiß das es funktioniert! Ich werde sicher sein, zu Fragen, ob ich laufen in weitere Schwierigkeiten.
InformationsquelleAutor AutomatedChaos
Hallo Hoffe, das würde dir helfen.. Danke..
InformationsquelleAutor Viraj John Maria