QTPのSetting.WebPackage(「ReplayType」)= 2のようなセレンやWatiNは、プロパティを持っていますか?

StackOverflow https://stackoverflow.com/questions/2239667

質問

それをカットしていないよう通って、FireEventスタイルクリックし、すべての情報を送信するために、私はそれが実際のクリックを必要とテストしていたアプリケーションでいくつかのボタンとメニューがあります。 TestPartnerのとQTPの両方が実際のクリックを使用することができます。 TestPartnerのは、これは常に(遅い)ず、QTPは1から2「へReplayType」を変更することによってこれを行います。

Setting.WebPackage("ReplayType") = 2

だから私の質問です。 WatiNまたはセレンで実際のクリックを取得するためにとにかくありますか?私は、そのオプションを見つけることができませんでした。

は、ありがとうございました ジョシュ

役に立ちましたか?

解決

セレン2は、実際のクリックを発射する代わりに行いセレン1のようなクリックやキーストロークを合成しようとすることができます。それはのようなセレン1つの問題の多くは、それはクリックを発射するかのMouseUpまたはMouseDownイベントされています、その上でネイティブにこれらの事を行うには、OSとの相互作用をたくさんしていますか?

セレン2は、その第2のα相であり、現時点では非常に安定です。あなたは http://code.google.com/p/seleniumからセレン2.0a2を得ることができます/ダウンロード/リストでます。

私は、.NETバインディングに取り組んでおり、彼らが行っている方法に本当に満足していますされています。

他のヒント

ReplayTypeがある[デバイスのに設定されている場合(2)、QTPは実際には(あなたがマウスカーソルの動きを見ることができます)マウスを移動し、クリックを実行します。私はセレンに精通していないんだけど(QTPがイベントReplayModeの場合と同様)私はリプレイは、純粋なJavaScriptで行われている知っているから、そのためには、DOMイベントを発射することができますが、それは、をシミュレートすることができない本当ののクリックQTPが行うやり方ます。

WatiNでは、IEのウィンドウ内の要素の「ネイティブ」インターフェースを取得することが可能です。あなたが任意の要素の画面座標を得ることができることを使用します。

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

これを使用するには:

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

明らかに要素が表示されなければなりません。私はぶっきらぼうに確認する方法を知りませんが、私はあなたの周りにスクロールする体のscrollTopスプライトとscrollLeft属性を変更することができると思います。

あなたが実際にクリックを行うための方法をも必要ですが、すでにstackoverflowの上にそのための答えはおそらくあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top