使用Silktest14测试EXTJS动态菜单
EXTJS这类的富媒体客户端现在越来越流行,那么自动化的时候也会遇到很多问题,这里先给出一个类似的案例,其中解决的方法也许可以帮助大家了解其中奥秘。该案例是EXTJS4.0.7中自带的一个案例,地址如下:ext-4.0.7-gpl/examples/grid-filtering/grid-filter-local.html
我们这里要做的是选择Size的菜单,然后选择filters,在弹出的菜单中选择small,从而实现对Grid中的所有数据进行过滤,只保留Size为small的记录。
我们如果按照平常的方式来录制,在回放的时候就会出现错误:
代码中提示我们在点击Filter的时候出现了无法找到对象,代码如下: With _desktop.BrowserApplication("localhost")
With .BrowserWindow("BrowserWindow")
.DomElement("gridcolumn-1033-trig").Click(MouseButton.Left, New Point(5, 17))
.DomElement("menucheckitem-1090-t").Click(MouseButton.Left, New Point(3, 3))
.DomElement("menucheckitem-1085-i").Click(MouseButton.Left, New Point(12, 14))
End With
End With
而在回放时会发现,虽然点击操作是存在的,但是菜单并没有出现,所以导致后面的菜单无法点到。那么知道原因以后我们可以调整一下策略了,首先我们点击一下标题栏size来触发下拉菜单按钮的出现,再去点击下拉按钮,移动鼠标到一层菜单的对应项,最终点击我们所需要的操作对象即可。
这里要注意的地方是:1.
菜单是通过点击边上的三角才出现的,而这个东西是通过鼠标移动到或者是点击标题拦才会出现的,所以直接访问是有对象但是没法触发菜单2.
Filters是通过鼠标移动到上面才出现的,而不是Click,如果直接录制是不会出现这个Mousemove操作,所以这里需要自己手动补一下最终的代码为:Imports SilkTest.Ntf.XBrowser
Public Module Main
Dim _desktop As Desktop = Agent.Desktop
Public Sub Main()
With _desktop.BrowserApplication("localhost")
With .BrowserWindow("BrowserWindow")
.DomElement("gridcolumn-1033-titl").Click(MouseButton.Left, New Point(56, 10))
.DomElement("gridcolumn-1033-trig").Click(MouseButton.Left, New Point(2, 9))
.DomLink("menucheckitem-1090-i").MouseMove()
.DomElement("menucheckitem-1085-i").Click(MouseButton.Left, New Point(8, 9))
End With
End With
End Sub
End Module
补充一点,这里用的是.Net Script模式做的脚本录制开发 Mark
页:
[1]