有应用程序中的一些按钮和菜单我测试需要实际点击通过和FireEvent风格点击发送所有的信息似乎并没有削减它。无论TestPartner和QTP可以使用的实际点击次数。 TestPartner这是否总是(缓动)和QTP通过从1改变“ReplayType”到2做到这一点。

Setting.WebPackage("ReplayType") = 2

所以我的问题是。反正是有得到真正的点击在华廷或硒?我一直没能找到该选项。

感谢您, 约什

有帮助吗?

解决方案

硒2可以发射,而不是试图合成点击和击键等硒1确实实的点击。它做了很多的互动与操作系统本身来完成这些事情,在谈到很多硒的1个问题,如被它烧成点击或鼠标松开或的mousedown?

硒2处于其第二α相,是相当稳定的时刻。您可以从 http://code.google.com/p/selenium让Selenium 2.0a2 /下载/列表

我一直在.NET绑定和我与他们去的方式真的很开心。

其他提示

ReplayType被设置为设备(2),实际上QTP移动鼠标并执行单击(你可以看到鼠标光标移动)。我不是很熟悉,硒但是从我知道的重播是纯JavaScript实现,因此它可以触发DOM事件(如QTP不会在事件ReplayMode),但它不能模拟的真正的点击方式QTP一样。

使用华廷,能够得到在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属性左右滚动。

您还需要一种方法来实际做的点击,但可能有一个答案已经在计算器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top