Frage

Es gibt einige Schaltflächen und Menüs in der Anwendung, die ich teste, bei denen tatsächliche Klicks erforderlich sind, um alle Informationen durchzusenden, und das Klicken von FireeEvent Style scheint nicht zu schneiden. Sowohl TestPartner als auch QTP können tatsächliche Klicks verwenden. TestPartner macht dies immer (langsam) und QTP, indem er die "Replaytype" von 1 auf 2 ändert.

Setting.WebPackage("ReplayType") = 2

Meine Frage ist also. Gibt es sowieso echte Klicks in Watin oder Selen? Ich konnte diese Option nicht finden.

Danke, Josh

War es hilfreich?

Lösung

Selenium 2 kann echte Klicks abfeuern, anstatt zu versuchen, die Klicks und Tastenanschläge wie Selenium 1 zu synthetisieren. Es ist eine Menge Interaktion mit dem Betriebssystem, diese Dinge nativ zu tun, welche über viele der Selen 1 -Probleme wie ist es ein Klick oder Mausup oder MouseDown?

Selen 2 befindet sich in seiner 2. Alpha -Phase und ist momentan ziemlich stabil. Sie können Selen 2.0A2 von erhalten http://code.google.com/p/selenium/downloads/List.

Ich habe an den .NET -Bindungen gearbeitet und bin sehr zufrieden mit der Art und Weise, wie sie gehen.

Andere Tipps

Wann ReplayType ist eingestellt auf Gerät (2) bewegt QTP tatsächlich die Maus und führt einen Klick aus (Sie können den Mauscursor bewegt). Ich bin mit Selenium nicht sehr vertraut, aber soweit ich weiß, dass die Wiederholung in reinem JavaScript durchgeführt wird ReplayMode) aber es kann nicht simulieren real Klicken Sie auf die Art und Weise, wie QTP dies tut.

Mit Watin ist es möglich, zur "nativen" Schnittstelle von Elementen in IE -Fenstern zu gelangen. Verwenden Sie die Bildschirmkoordinaten eines beliebigen Elements.

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);
}

Um es zu benutzen:

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

Offensichtlich muss das Element sichtbar sein. Ich weiß nicht, wie ich diese außerhalb des Hands überprüfen kann, aber ich denke, Sie können die Scrolltop- und Scrollleft -Attribute des Körpers ändern, um herumzublättern.

Sie benötigen auch eine Methode, um den Klick tatsächlich zu machen, aber es gibt wahrscheinlich eine Antwort dafür bereits auf Stackoverflow.

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