Domanda

Ci sono alcuni pulsanti e menu nell'applicazione sto testando che richiedono scatti effettivi per inviare tutte le informazioni tramite e cliccando stile FireEvent non sembra tagliarlo. Sia TestPartner e QTP possono utilizzare clic effettivi. TestPartner fa questo sempre (lento) e QTP fa questo cambiando la 'ReplayType' a 2 da 1.

Setting.WebPackage("ReplayType") = 2

Quindi la mia domanda è. Esiste un modo per ottenere scatti reali WatiN o selenio? Non sono stato in grado di trovare questa opzione.

Grazie, Josh

È stato utile?

Soluzione

Il selenio 2 può sparare scatti reali, invece di cercare di sintetizzare i clic e le battiture come Selenio 1 fa. Si fa un sacco di interazione con il sistema operativo per fare queste cose in modo nativo che nel corso arriva un sacco di selenio 1 questioni come è vero sparare un clic o MouseUp o MouseDown?

Selenio 2 è nella sua seconda fase alfa ed è abbastanza stabile in questo momento. È possibile ottenere selenio 2.0a2 da http://code.google.com/p/selenium / downloads / lista .

Ho lavorato sulle legature .NET e sono davvero contento di come stanno andando.

Altri suggerimenti

Quando ReplayType è impostato su dispositivo (2), QTP in realtà sposta il mouse ed esegue un clic (si può vedere il cursore di spostamento del mouse). Io non sono molto familiare con selenio, ma da quello che so riproduzione avviene in puro JavaScript quindi può generare eventi DOM (come QTP fa in ReplayMode evento), ma non riesco a simulare una reale fare clic sul modo QTP fa.

Con WatiN, è possibile raggiungere l'interfaccia "nativo" di elementi in finestre di IE. Usando che è possibile ottenere le coordinate dello schermo di qualsiasi elemento.

using mshtml; //Add a reference to Microsoft.mshtml that comes with WatiN.
using WatiN.Core.Native.InternetExplorer;

public static System.Drawing.Point GetScreenPoint(IEElement element)
{
    IHTMLElement nativeElement = element.AsHtmlElement;
    IHTMLElement2 offsetElement = (IHTMLElement2)nativeElement;
    IHTMLRect clientRect = offsetElement.getBoundingClientRect();
    IHTMLDocument2 doc = (IHTMLDocument2)nativeElement.document;
    IHTMLWindow3 window = (IHTMLWindow3)doc.parentWindow;

    int windowLeft = window.screenLeft;
    int windowTop = window.screenTop;
    int elementLeft = clientRect.left;
    int elementTop = clientRect.top;
    int width = nativeElement.offsetWidth;
    int height = nativeElement.offsetHeight;

    int clickX = windowLeft + elementLeft + (width / 2);
    int clickY = windowTop + elementTop + (height / 2);

    return new System.Drawing.Point(clickX, clickY);
}

Per usarlo:

Button myButton = browser.Button(Find.ById("myButton"));
System.Drawing.Point clickPoint = GetScreenPoint((IEElement)myButton.NativeElement);
MyClick(clickPoint);

Ovviamente l'elemento deve essere visibile. Non so come controllare per questo estemporaneo, ma penso che si può cambiare lo scrollTop e scrollLeft attributi del corpo per scorrere.

Avrete anche bisogno di un metodo per fare in realtà il clic, ma probabilmente c'è una risposta per questo già su StackOverflow.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top