2009-05-06 3 views
1

Ich benutze WatiN Test-Tool und ich schreibe C# .net Skripte. Ich habe ein Szenario, in dem ich das Thema meiner Webseite ändern muss, also muss ich auf eine Bildschaltfläche klicken, die ein Ajax-Popup mit dem Bild öffnet und "Apply Theme" -Taste, die jetzt unter dem Bild ist müssen Sie auf den Button klicken, so wie dies zu tun ist, schlagen Sie bitte eine Lösung vor.Wattin Skript für die Bearbeitung von Ajax Popup

Antwort

4

Klicken Sie also zuerst auf den Button, der das Popup-Fenster öffnet, und auf .WaitUntilExists() für die Schaltfläche im Popup-Fenster.

Dies funktioniert möglicherweise nicht, wenn die Schaltfläche im Popup existiert, aber nicht sichtbar ist. In diesem Fall könnten Sie die .WaitUntil() versuchen und ein Attribut angeben, nach dem gesucht werden soll.

IE.Button("ButtonID").WaitUntil("display","") 
+0

Dank für die Antwort, aber die Methode funktioniert nicht. wn ich klicke auf das bild um aplly theme das popup erscheint hat ein neues fenster (nicht als windows internet explorer) es enthält bild oben und eine schaltfläche ("Apply Theme") darunter. Im title panel gibt es maximize, minimize und schließen Sie die Schaltfläche. Ich muss auf den Button ("Apply Theme") klicken, um das Design auf das Hauptfenster anzuwenden. –

+0

Ich bin mir nicht sicher, was Sie hier fragen. Sie benötigen im Grunde die ID oder eine andere Möglichkeit, um die Schaltfläche "Apply Theme" mit WatiN zu erhalten. Sobald Sie das haben, müssen Sie einfach .WaitUntilExists() und dann .Click() diese Schaltfläche. –

1

Das Ajax-Popup selbst sollte kein Problem darstellen, wenn Sie das Timing des Steuerungsladens asynchron handhaben. Wenn Sie das AJAX Control Toolkit verwenden, können Sie es wie diese mit der Steuerung

int timeout = 20; 
for (i=0; i < timeout; i++) 
{ 
    bool blocked = Convert.ToBoolean(ie.Eval("Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack();")); 
    if (blocked) 
    { 
     System.Threading.Thread.Sleep(200); 
    } 
    else 
    { 
     break; 
    } 
} 

lösen sichtbar Sie sollten dann in der Lage sein, um es normal zugreifen.

Wattin 1.1.4 hinzugefügt Unterstützung für WaitUntil auf Steuerelemente, aber ich habe es nicht persönlich verwendet.

// Wait until some textfield is enabled 
textfield.WaitUntil("disable", false.ToSting, 10); 
0

Ich verwende keine AJAX Control Toolkit und in dem Popup gibt es kein Textfeld, wie ich erwähnt habe, ist nur ein Bild und eine Taste darunter, die ich brauche, um zu klicken anzuwenden das Bild als Thema.