2016-05-19 9 views
2

Ich versuche einige Automatisierungstests in meiner Anwendung auszuführen, aber die Tooltip für die UFT-Hidden-Modusbenachrichtigung erscheint vor den Objekten auf dem Bildschirm und verhindert, dass meine Tests ausgeführt werden.
Ich weiß, ich kann deaktivieren Sie die Option "Tooltip ausgeblendeten Modus Benachrichtigung anzeigen" in Remote Agent-Einstellungen, um dieses Problem zu beheben und es funktioniert gut auf meinem Computer, nachdem ich dies tun, aber diese Tests werden auf anderen Computern ausgeführt Benutzer in meiner Firma, und es wäre eine echte Anstrengung, jedem von ihnen zu sagen, diese Einstellung auf ihrem Rechner zu ändern.
Ist es eine Möglichkeit, diese Checkbox programmatisch zu deaktivieren?Ist es möglich, "Tooltip für versteckten Modus Benachrichtigung anzeigen" programmgesteuert auf UFT zu deaktivieren?

EDIT:
Hier ist ein wenig mehr Details darüber, wo diese mich betrifft:
Ich teste eine Webanwendung und in einigen meiner Testfälle Ich brauche eine Datei von dieser Anwendung herunterzuladen. Ich klicke dazu auf "Speichern unter" im Kontextmenü, das in einer Benachrichtigungsleiste am unteren Rand des Browsers angezeigt wird. Es folgt der Teil des Codes eine solche Operation auszuführen:

Dim brwBottom 
Set brwBottom = Browser("brw_Bottom_Save_As") 

If brwBottom.WinObject("wo_Notification").WinButton("wb_Selector").Exist Then 
    brwBottom.WinObject("wo_Notification").WinButton("wb_Selector").Click 
    brwBottom.WinMenu("wm_Selector").Select "Save As" 
End If 

Dies funktioniert auf meinem Rechner in Ordnung, weil UFT Meldung nicht angezeigt wird, sondern auch in anderen Maschinen, bei denen die UFT Mitteilung angezeigt ist, überlappt das Menü und mein Skript kann die Option "Speichern unter" nicht auswählen. Wenn es also nicht möglich ist, diese Benachrichtigung zur Laufzeit programmatisch zu schließen, gibt es eine alternative Lösung, um auf die Schaltfläche "Speichern unter" zu klicken, selbst wenn diese Benachrichtigung sich überschneidet?

Antwort

2

ich die UFT Mitteilung Tooltip zu identifizieren verwaltet zu tun und es zu schließen. Damit gibt es keine Objekte mehr vor der Schaltfläche, auf die ich klicken muss und mein Skript kann erfolgreich ausgeführt werden. Folgendes ist der verwendete Code. Ich gebe dies noch nicht als akzeptable Antwort an, weil ich immer noch darauf warte, dass mein Team die Lösung akzeptiert, aber das funktioniert.

+0

Danke fürs Teilen! Als Favorit für den Fall der Zukunft markiert. :) – nwpulele

+0

Sie können Ihre eigene Antwort akzeptieren, wenn das Ihr Problem gelöst hat. – ManishChristian

0

können Sie den gewünschten Browser mit der folgenden aktivieren, und dann versuchen, Speichern unter

hwnd = Browser("title:=.*").GetROProperty("hwnd") 
Window("hwnd:=" & hwnd).Activate 
+0

Ich habe versucht, das Hinzufügen dieser zwei Zeilen Code vor dem ** Wenn ** Teil, aber es hat nicht funktioniert. Und ich schätze, das Aktivieren des Browsers wird überhaupt nicht funktionieren, weil der Benachrichtigungs-Tooltip oben erzwungen wird und es scheint, dass diese Operation mit dem Mauszeiger ausgeführt wird. Sieht so aus, als müsste ich einen Weg finden, diesen Tooltip zu schließen. –

1

Ich verstehe völlig Ihre Schmerzen, weil meine Projekte auch mit IE-Download-Leiste interagieren müssen. Normalerweise verwende ich SendKeys, um Download-Aktivität in verschiedenen Projekten zu behandeln.

Wenn der Download bar herauskommt, können Sie ALT+N ersten senden Fokus auf Download-Leiste zu setzen, dann einige Tabulatortasten senden auf Save auszuwählen, und einige Down Arrow Schlüssel SaveAs auszuwählen.

Auf diese Weise brauchen Sie nicht UFT Benachrichtigungen behandeln Mühe ...

Probe SendKeys Codes leicht gegoogelt werden kann.

+0

Danke für das Teilen. Dies ist auch eine gute Lösung und ich werde es versuchen, falls meine derzeitige Lösung von meinem Team nicht angenommen wird. Ich habe tatsächlich etwas Ähnliches versucht, indem ich auf die Leiste geklickt habe, um den Fokus zu bekommen, bevor ich einige Send Keys hinzufügte, aber es hat nicht funktioniert, und das war der Zeitpunkt, als ich zum aktuellen Ansatz wechselte (close UFT notification). Ich wusste bis jetzt nicht von "ALT + N". Wie auch immer, vielen Dank. –

+1

@VictorMoraes Wie Sie bereits erwähnten, "klicken Sie auf die Leiste, um den Fokus zu erhalten, bevor Sie einige Send Keys hinzufügen". Vielleicht können Sie versuchen, auf einen leeren Bereich auf der Webseite zu klicken, um den Fokus auf die aktuelle Seite zu legen, und dann einige Tasten wie 'Tab' zu senden, um' SaveAs' zu wählen. Tatsächlich hat meine Lösung hier den Nachteil, dass der Testbenutzer die Maus nicht bewegen oder die Tastatur während der Testläufe nicht berühren sollte. Manchmal, nachdem 'ALT + N' den Fokus auf die Downloadleiste gesetzt hat, kann der Browser den Fokus verlieren. Daher müssen Sie einen Checkpoint hinzufügen, zum Beispiel überprüfen, ob der Download erfolgreich ist, wenn nicht, verwenden Sie eine "Do ... While" -Schleife, um diese Sache zu wiederholen – nwpulele

1

erstellen UFT GUI-Test und umfassen die folgenden drei Zeilen:

extern.Declare micLong, "WritePrivateProfileString", "kernel32.dll", "WritePrivateProfileString", micString, micString, micString, micString 
extern.WritePrivateProfileString "RemoteAgent", "ShowBallon", "0", Environment("ProductDir") + "\bin\mic.ini" 
systemutil.CloseProcessByName "UFTRemoteAgent.exe" 

Von ALM, führen Sie es auf allen UFT Maschinen.

Hinweise:

  1. Dies wird die Flagge wechseln, so Tooltip steuert ausgeschaltet sein, so dass beim nächsten Mal Remote Agent startet wird es lesen und die Tooltip nicht mehr angezeigt werden soll.
  2. Die dritte Zeile wird UFT Remote-Agent für GUI-Tests, die für die Kommunikation zwischen UFT und ALM Client verantwortlich ist töten und dies wird einen Fehler in ALM Automatic Runner verursachen (der RPC-Server ist nicht verfügbar) ... einfach ignorieren. Wir müssen sie töten, damit es beim nächsten Mal wieder gestartet wird, versuchen wir einen Test von ALM zu laufen (wie oben erwähnt, neuer Wert für Tooltip gelesen wird)

EDIT:

ich nur habe etwas interessantes gefunden:

  1. mic.ini
  2. RemoteAgentGUISettings.xml
: tatsächlich an zwei Standorten wird dieses Flag gespeichert 10

aber die, die die Änderung tatsächlich wirksam macht, ist RemoteAgentGUISettings.xml (es scheint, dass sie von INI-Dateien zu .xml wechseln ... was sinnvoll ist). In diesem Fall wird der Code ein wenig ändern, aber die Idee ist die gleiche:

filePath = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%appdata%") + "\Hewlett-Packard\UFT\Persistence\Dialogs\RemoteAgentGUISettings.xml" 
Set xmlDoc = CreateObject("Microsoft.XMLDOM") 
xmlDoc.load filePath 
Set nNode = xmlDoc.selectsinglenode ("//SettingsViewModel/IsShowBalloon") 
nNode.text = "false" 
strResult = xmldoc.save(filePath) 
systemutil.CloseProcessByName "UFTRemoteAgent.exe" 

Dieses Mal stellte ich sicher, es funktioniert;)

+0

Danke für das Teilen, aber das ist nicht sehr praktisch, da würde ich noch Sie müssen jeden Tester auffordern, dies auf seinen Rechnern auszuführen, und sich auch daran erinnern, ihn auf Server-Rechnern auszuführen, was auch der Fall wäre, wenn Sie ihn auffordern, solche Benachrichtigungen zu deaktivieren. Dies würde eine Voraussetzung sein, um nur meine Testsätze auszuführen. Aus diesem Grund ist meine derzeitige Vorgehensweise immer noch vorzuziehen, da sie die Benachrichtigung nur an dem Punkt beendet, an dem sie die Ausführung beeinträchtigt. –

+1

Kein Problem. Es ist nur eine andere Alternative. Der Vorteil besteht darin, dass diese Einstellung einmal ausgeführt wird, damit die Einstellung angewendet wird (bei jedem Ausführen des Skripts kein Footprint) und Sie Ihre Tester nicht wirklich dazu zwingen müssen, da Sie remote von ALM ... und von Computern aus arbeiten können sind eingeschaltet, können Sie es über Nacht laufen, wenn niemand die Maschinen verwendet ... wieder, muss es nur einmal tun. – Alvaro

Verwandte Themen