discusstest 发表于 2011-11-11 19:49:34

selenium IDE动态元素的问题,请指教

本帖最后由 discusstest 于 2011-11-11 19:50 编辑

最近两天开始尝试用selenium IDE做自动化,碰到了一些问题,因为我们的页面是写好的script,很多地方都是动态的

左右是两个frame,

第一步点击左边的cluster链接,就打开了右边的frame,
        用IDE录制的脚本是selenium.click("link=cluster");
                selenium.selectFrame("relative=up");
                selenium.selectFrame("detail");
       这一段脚本用IDE回放没问题,但如果在IDE窗口里面find,selenium.selectFrame("relative=up")找不到
第二步点击右边的cluster node链接,打开cluster node的tab
        用IDE录制的脚本是selenium.click("id=ClusterNodesHyperlink_caption_1640063425"),
        因为后面的数字是动态生成的,每次都不一样,
        改成selenium.click("css=span")后在IDE窗口里面find能找到,可是用IDE回放就找不到元素
第三步在罗列的cluster结点中,单击NodeA旁边的弹出菜单,选择properties
        用IDE录制的脚本是selenium.click("name=ns_0x002d2124140002_WDWPM27d827d8")
        这个比较麻烦,因为菜单有3个选项,而且每个cluster结点都有自己的菜单,如何找到对应的结点的具体菜单项?

遇上鱼子 发表于 2011-11-21 16:29:02

其实seleniumIDE只是一个辅助功能,如果你遇到回放不成功的情况,建议在你所熟悉的代码下使用IDE进行设计,selenium支持很多种语言,总有一款适合你,这种问题,在seleniumIDE下很难解决掉的。

流光 发表于 2011-11-22 17:51:08

试试xpath定位看看?加上匹配模式

474241558 发表于 2011-11-23 09:07:07

单击nodeA后弹出的菜单,如果要以每个菜单的name做为匹配属性的话,我觉得没有必要,而且你必须要提前准备大量的这样的参数,实现起来比较困难。
你可以这样实现,nodeA\nodeB、nodeC点击应该没有什么问题吧,如果你要点击某一结点(nodeA\B\C)打开后的具体菜单,可以判断点击节点后,弹出的菜单层(这里的菜单应该是一个div层,平时不点击节点的时候他不会出现,肯定有个display的样式属性)是否出现,可以通过selenium中等待某一对象是否出现来判断,然后在弹出的层中,已具体的text文字做为主要识别依据,来识别三个不同的菜单,从而避开菜单的name属性无规律,不好操作的问题。
这样实现应该没有问题,对selenium也了解过一小段时间,配合cucumber做过自动化。以上仅是我对该问题解决的初步思想。
页: [1]
查看完整版本: selenium IDE动态元素的问题,请指教