Frage

Ich baue ein Skript, um die Geschenkkartenfunktionalität auf einer Reihe von ECOM-Sites zu testen, und schlage ein frustrierendes Thema, in dem UFFT sagen wird, dass die kleinere Zahl größer ist als die größere Zahl. Das Skript öffnet und schließt den Browser zwischen Iterationen und zieht die Site-URL aus einer neuen Zeile in der Datatable. Es funktioniert bis zum Auswertungspunkt, wenn das Kartengleichgewicht größer ist als die Summe. Hier ist der Code, mit dem ich Probleme habe:

generasacodicetagpre.

Ich habe mehrere Möglichkeiten versucht, Werte für "A" und "B" einzustellen. Dazu gehört das Identifizieren des Wagens insgesamt und GC-Gleichgewicht mit der beschreibenden Programmierung. Ich habe auch RegeXP-Linien verwendet, um Zahlen von der von der GetRopRoperty erzeugten Zeichenfolge zu trennen. Ich habe sogar versucht, die Werte an die Datatable zu schreiben, und hatte den Vergleich diese Werte gelesen.

In allen Fällen, wenn ich eine MsgBox für A oder B mache, wird die richtigen Werte angezeigt. Ich ging mit der obigen Methode, da es die Zahlen ohne Dezimalpunkt zurückgibt.

Es scheint, als ob UFT Previous-Antworten verwendet, die IF-Anweisung für jede Site (vielleicht die Antwort vom ersten Mal). Schließlich wird es sagen, dass a> b, wenn a= 16 und b= 100 Ist UFFT die Antwort auf die WENN-Anweisung? Ist mein Code falsch (ich lerne die Programmierung, während ich meine Testskripts baue, so dass es möglich ist)?

Alle Anregungen oder Beratung wären großartig! Vielen Dank, Robert

War es hilfreich?

Lösung

Meine erste Vermutung ist, dass Sie zwei Saiten vergleichen, nicht zwei Zahlen. Der Operator "&" führt die String-Verkettung aus. Wenn Sie also Anweisungen wie "B= B & D" oder "A= A & C" verwenden, bauen Sie eine Zeichenfolge. Wenn A="16" und B="100" dann größer ist als von einem alphabetischen Vergleich von zwei Saiten, da das zweite Zeichen in A ("6") ein Gitter ist als das zweite Zeichen in B ("0").

versuchen Sie stattdessen einen numerischen Vergleich zu zwingen.

generasacodicetagpre.

Alternativ können Sie Ihre Variablen zwingen, erneut als Zahlen neu bewertet zu werden, nachdem Sie Ihre Saiten erstellt haben.

generasacodicetagpre.

Dann würden alle zukünftigen Aussagen diese als Zahlen behandeln, keine Text-Saiten.

Bei einer nicht zusammenhängenden Note würde ich Sie empfehlen, bessere Variablennamen zu verwenden, die etwas bedeuten. Werte wie "A", "B", "C", und "D" helfen niemandem, Ihren Code zu lesen und zu verstehen, warum eine Variable anders ist als ein anderes. Missachtung, wenn Sie dies gerade tun, um dieses Code-Snippet zu gewährleisten.

Es ist auch möglich, dass Ihr Code stark vereinfacht werden kann. Wenn die Werte, die Sie aus 'GETROPROPERTY', sind nur Dezimalwerte (ohne Währungszeichen), können Sie sie direkt in doppelte Werttypen umwandeln und diese zum Vergleich verwenden. Beispiel

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top