如何处理会动态变化的对像
我的问题是这样的:如附件所示,我要对 Web element 对像 "Hot Brands"进行编辑. "Hot Brands"里面包括order之类的属性,当对这些属性进行修改之后, "Hot Brands"也发生了变化.因此回放的时候出现错误,找不到这个对像了.请指教如何解决这个问题. 谢谢
以下是我录制的脚本:其中100,99之类的数字为order. "Hot Brands"他还有一个属性cartridge id, 录制的时候没有把这个信息捕获到,请问该项如何把这个属性捕获到呢?这个ID是惟一的。
Browser("Merchandising Tool").Page("Page").WebElement("Hot Brands : 100").Click
Browser("Merchandising Tool").Page("Page").WebElement("Hot Brands : 100").Click
Browser("Merchandising Tool").Page("Page").WebEdit("edtCat_CatDescription").Click
Browser("Merchandising Tool").Page("Page").WebEdit("edtCat_CatDescription").Set "test1"
Browser("Merchandising Tool").Page("Page").WebButton("Save").Click
Browser("Merchandising Tool").Page("Page").WebElement("Hot Brands : 100").Click
Browser("Merchandising Tool").Page("Page").WebEdit("edtCat_Order").Click
Browser("Merchandising Tool").Page("Page").WebEdit("edtCat_Order").Set "99"
Browser("Merchandising Tool").Page("Page").WebButton("Save").Click
Browser("Merchandising Tool").Page("Page").WebElement("Hot Brands : 99").Click
Browser("Merchandising Tool").Page("Page").WebEdit("edtCat_CatName").Click
Browser("Merchandising Tool").Page("Page").Link("Logout").Click
Browser("Merchandising Tool").Page("Merchandising Tool_2").Sync
Browser("Merchandising Tool").Close 提供一下你要处理的“WebElement”的html源码,这样比较好明确问题。:) 正则表达式 用描述性编程就可以解决了 原帖由 chenyb85 于 2008-9-9 18:06 发表 http://bbs.51testing.com/images/common/back.gif
提供一下你要处理的“WebElement”的html源码,这样比较好明确问题。:)
是这个吗? 原帖由 lantianwei 于 2008-9-9 18:16 发表 http://bbs.51testing.com/images/common/back.gif
正则表达式
我试了,但没成功,不知道是不是我用错了 先试一下以下这个。如果不行的话,那请提供源代码。就是页面上点击右键,“查看源码文件”中有关此控件的那段程序。:)
Browser("Merchandising Tool").Page("Page").WebElement("html tag:=SPAN","innertext:=Hot.*Brands.*(\d*)").click 原帖由 chenyb85 于 2008-9-9 18:06 发表 http://bbs.51testing.com/images/common/back.gif
提供一下你要处理的“WebElement”的html源码,这样比较好明确问题。:)
是这个吧: 那个cCartridgeID是惟一的,但是录制的时候没有录制下来.
<span class="active_tree" id="db_cartridgeID_contentTypeID" title="%7B%22cImageID%22%3A0%2C%22cAppID%22%3A102003%2C%22cMenuText%22%3A%22Hot%20Brands%22%2C%22cOrder%22%3A99%2C%22cCartridgeID%22%3A341502%2C%22cArchiveApp%22%3A0%2C%22cMenuTypeID%22%3A1%2C%22cCartridgeDescription%22%3A%22test1%22%2C%22cActionID%22%3A0%2C%22cEndDate%22%3Anull%2C%22woymNode%22%3Anull%2C%22cContentTypeID%22%3A8%2C%22cMenuID%22%3A152610%2C%22cStartDate%22%3A%2207%2F25%2F2008%2022%3A00%3A00%22%7D">Hot Brands : 99</span> 你可以直接用手动的方式修改识别此控件的属性,这个就不讲了。就是工具的应用。
也可以用描述性编程:
如,试一下吧
Browser("Merchandising Tool").Page("Page").WebElement("html tag:=SPAN","html id:=db_cartridgeID_contentTypeID").Click
顺便提一句,如果使用描述性编程,默认是识别正则表达式的。如果不想让其识别为正则表达式,则要进行转义或设置“RegularExpression”. 原帖由 chenyb85 于 2008-9-10 10:19 发表 http://bbs.51testing.com/images/common/back.gif
先试一下以下这个。如果不行的话,那请提供源代码。就是页面上点击右键,“查看源码文件”中有关此控件的那段程序。:)
Browser("Merchandising Tool").Page("Page").WebElement("html tag:=SPAN","innertext:=Hot. ...
嗯,真的可以了耶,谢谢哦.:)
请问这是什么方法?
如果我要编辑这个element的名字又要怎么做呢?也就是innertext变了 建议还是少用“innertext”来识别吧。除非“innertext”的值是比较稳定的或是有规则的。
上面用到的是描述性编程,而默认是支持正则表达式的。也用到正则表达式“Hot.*Brands.*(\d*)”
----------------------------------------------
“如果我要编辑这个element的名字又要怎么做呢?也就是innertext变了”
这个没看懂要问什么。
你还是试一下以下这个能不能用,能用就用这个:
Browser("Merchandising Tool").Page("Page").WebElement("html tag:=SPAN","html id:=db_cartridgeID_contentTypeID").Click
-------------------------------------------------
建议先把“Main_Users_Guide”完整且仔细的看一遍。此文档,本论坛搜搜就有。
呵呵。有空多交流哦。共同提高测试的地位。:) 原帖由 chenyb85 于 2008-9-10 10:36 发表 http://bbs.51testing.com/images/common/back.gif
你可以直接用手动的方式修改识别此控件的属性,这个就不讲了。就是工具的应用。
也可以用描述性编程:
如,试一下吧
Browser("Merchandising Tool").Page("Page").WebElement("html tag:=SPAN","html id:=db_cart ...
用Browser("Merchandising Tool").Page("Page").WebElement("html tag:=SPAN","html id:=db_cartridgeID_contentTypeID").Click 不行,因为db_cartridgeID_contentTypeID不是惟一的,其他的WebElement也有这个属性.
谢谢您的耐心指导 那你的“innertext”值有规则吗?
即<span> 和 </span>之间的值是否都符合上面的正则表达式“Hot.*Brands.*(\d*)”,否则会不识别的哦。
回复 13# 的帖子
innertext可能没有规则,因为我可能会对WebElement的名称进行编辑,也就是把Hot Brands改为其他的名字 能把这一块的界面截图发上来不?然后注明你要点击的点,并注明哪些是不动点或是有规则点。这样才好写适应性更好的代码。[ 本帖最后由 chenyb85 于 2008-9-10 11:12 编辑 ] 原帖由 chenyb85 于 2008-9-10 11:11 发表 http://bbs.51testing.com/images/common/back.gif
能把这一块的界面截图发上来不?然后注明你要点击的点,并注明哪些是不动点或是有规则点。这样才好写适应性更好的代码。
我要执行的操作是:
1. 点击 "Hot Brands", 然后下面就会出现有关他的相关信息.
2. 对"category name"进行编辑,也就是编辑"Hot Brands"把他改为其他的名字.
3. 点击"SAVE" button进行保存 根据这张图片和上面的聊天,个人感觉不适合直接识别这个控件。
但有一个问题,开发居然把控件“id”弄成一样的?这样不大好哦。
提供我的一点思路:首先,你怎么确定你要点的是哪一个“WebElement“,有什么特性?
点击后下面的编辑框是怎么识别并进行得理的?
查看一下,是不是有和主键类似的东西。
要真不行,可以扩展到旁边的对象,然后再通过旁边的对象获取要点击的对象。
[ 本帖最后由 chenyb85 于 2008-9-10 11:50 编辑 ] 加QQ聊吧。不然这样太慢了。:) 我们公司只能用MSN: lxjbiscuit@hotmail.com 原帖由 chenyb85 于 2008-9-10 11:32 发表 http://bbs.51testing.com/images/common/back.gif
根据这张图片和上面的聊天,个人感觉不适合直接识别这个控件。
但有一个问题,开发居然把控件“id”弄成一样的?这样不大好哦。
提供我的一点思路:首先,你怎么确定你要点的是哪一个“WebElement“,有什么特性 ...
录制的时候代码里显示的是WebElement的category name 和 order.
Browser("Merchandising Tool").Page("Page").WebElement("Voice Tones : 4").Click
其实识别这个WebElement的惟一标识是他的cartridge ID,但是在这个在录制的时候没有录制下来.
关于下面的编辑框直接点击这个"WebElement'就可以出来.
Browser("Merchandising Tool").Page("Page").WebEdit("edtCat_CatName").Click
Browser("Merchandising Tool").Page("Page").WebEdit("edtCat_CatName").Set "Voice Tones edit"
Browser("Merchandising Tool").Page("Page").WebButton("Save").Click
[ 本帖最后由 angelia_liu 于 2008-9-10 14:05 编辑 ]
页:
[1]
2