51Testing软件测试论坛

标题: WebElement中的参数问题:怎么设置成动态(急用在线等,谢谢了) [打印本页]

作者: chenwubia0    时间: 2012-4-5 10:51
标题: WebElement中的参数问题:怎么设置成动态(急用在线等,谢谢了)
本帖最后由 chenwubia0 于 2012-4-5 10:58 编辑

Browser("xxxxx").Page("xxxxx").Frame("Frame").Image("AMDAwAAAACH5BAEAAAAALAAAAAABAA").Click
Browser("xxxxx").Page("xxxxx").Frame("Frame").WebElement("客户01").Click
上面代码就是点击一个下拉框,下拉框中出现"客户01"的内容。我用的是object from repository 获取对象
但是这个“客户01”会根据前面的业务而变化,例如变化成“客户02”。那我这个代码就捕捉不到客户02了。
有没有什么方法可以随着前面业务的变化而能变化.我之前的业务设置了个DataTable是“客户01”.我设置了
运行10次,也就是一直到“客户10”.所以这里我想WebElement("客户01").Click也能随着DataTable的变化
而获取到数据。
作者: mimmy    时间: 2012-4-5 11:41
既然已经参数化了,为何不用DataTable.value(列名,sheet名)替换"客户01"这个参数呢
作者: chenwubia0    时间: 2012-4-5 12:40
回复 2# mimmy


    Browser("xxxxx").Page("xxxxx").Frame("Frame").WebEdit("ext-comp-1091").Set DataTable.Value("客户名称", dtGlobalSheet)
[attach]78301[/attach]
这样的写。但是代码不能通过。



Browser("xxxxx").Page("xxxxx").Frame("Frame").Image("AMDAwAAAACH5BAEAAAAALAAAAAABAA").Click
Browser("xxxxx").Page("xxxxx").Frame("Frame").WebEdit("ext-comp-1091").Set DataTable.Value("客户名称", dtGlobalSheet)
这样的话只会打开下拉框,而不选择数据
作者: chenwubia0    时间: 2012-4-5 15:12
有木有高手指点指点。急用中。。。谢谢啦
作者: wangyanzhao    时间: 2012-4-6 13:14
Image("name:=[a-zA-Z0-9]{32}")Click   试一试,就是用正则代替
作者: luchao215225    时间: 2012-4-6 13:33
可以使用循环从datatable中取值啊.
作者: lotus    时间: 2012-4-6 14:07
用SetTOProperty方法  动态修改WebElement("客户01")的识别属性,如text.再执行点击操作
Browser("xxxxx").Page("xxxxx").Frame("Frame").WebElement("客户01").SetTOProperty( Property, Value)
Browser("xxxxx").Page("xxxxx").Frame("Frame").WebElement("客户01").Click


FYI:
Syntax
object.SetTOProperty Property, Value

Syntax Details
Argument Description
object A test object of type WebElement.
Property Required. A String value.
The test object property to set.

Value Required. A Variant value.
The value to assign to the listed property.
作者: chenwubia0    时间: 2012-4-6 15:33
既然已经参数化了,为何不用DataTable.value(列名,sheet名)替换"客户01"这个参数呢
mimmy 发表于 2012-4-5 11:41



    用了,但是到这就报错。
作者: chenwubia0    时间: 2012-4-6 15:35
回复 6# luchao215225


    试过了,这个下拉框是不能输入的状态,只能点击选择。像文本框的话我试过用datatable。那些都行
作者: chenwubia0    时间: 2012-4-6 15:49
回复 7# lotus


    还真没看懂。复制回去代码提示错误
作者: 026300    时间: 2012-4-6 16:46
图片名称和click的那个业务放到tale中,然后取值不行么?
作者: lotus    时间: 2012-4-6 17:43
回复  lotus


    还真没看懂。复制回去代码提示错误
chenwubia0 发表于 2012-4-6 15:49



WebElement("客户01")这个对象是用哪个属性来识别的,你查看下你的对象库中WebElement("客户01"),可能是innertext为'客户01'。
用SetTOProperty方法  动态修改WebElement("客户01")运行时对象库中的的识别属性innertext为'客户02'

Browser("xxxxx").Page("xxxxx").Frame("Frame").WebElement("客户01").SetTOProperty( "innertext","客户02")
作者: chenwubia0    时间: 2012-4-6 19:37
本帖最后由 chenwubia0 于 2012-4-6 20:10 编辑

回复 12# lotus


这是文本框里的属性,文本框为不可输入。只能选中下拉框的数据
[attach]78340[/attach]

这是选中后的属性
[attach]78341[/attach]



Browser("xxxxx").Page("xxxxx").Frame("Frame").WebElement("客户01").SetTOProperty "innertext",客户02
我是这样写的。你上面那种写法好像语法错了。
但是这样写也无法在回放时自己选中客户02
作者: lotus    时间: 2012-4-8 22:03
回复  lotus


这是文本框里的属性,文本框为不可输入。只能选中下拉框的数据


这是选中后的属性
...
chenwubia0 发表于 2012-4-6 19:37


一定要给你完全正确的代码,你才明白,但我不在你旁边无法做到那么完美呀
Browser("xxxxx").Page("xxxxx").Frame("Frame").WebElement("客户01").SetTOProperty "innertext","客户02"
如果不通过,你把出错截屏发出来,看是哪出错
如果通过了,你把"客户02" 参数化或用变量 象2楼mimmy说的那样做
作者: luchao215225    时间: 2012-4-9 14:01
这个应该是weblist吧,可以用weblist.item("")来选择的啊
作者: chenwubia0    时间: 2012-4-9 14:19
Browser("xxxxx").Page("xxxxx").Frame("Frame_5").WebElement("客户001").SetTOProperty "innertext", DataTable("客户名称", dtGlobalSheet)
Browser("xxxxx").Page("xxxxx").Frame("Frame_5").WebElement("客户001").Click

Ok了。第一句是获取动态的datatable值,第二句是选中该值。谢谢各位。
作者: edisonzhang    时间: 2012-4-12 09:44
up
作者: fanjianmin    时间: 2012-4-16 11:01





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2