fwind1 发表于 2010-9-6 16:18:17

问个WebList对象的问题

oa系统有个查询页面限制了只能查3个月内的数据,选择完月份后点查询按钮可查询该月的结果。
现月份WebList的下拉框中只有“7,8,9”三个数据,录制时选了7月份,生成的脚本为:
Browser("OA系统").Page("OA系统").Frame("content_frame").WebList("month").Select "7"

问:如果我想选到5月份去查询要怎样做?试了下面两种方法都不行,
方法一:
Browser("OA系统").Page("OA系统").Frame("content_frame").WebList("month").Object.value="5"
方法二:
Browser("OA系统").Page("OA系统").Frame("content_frame").WebList("month").SetTOProperty "selection","5"

开朗幽默 发表于 2010-9-6 21:07:27

WEBLIST里面只有7,8,9三个选项,那选择5肯定是不行的。要看历史数据,就只有去后台了。

fwind1 发表于 2010-9-7 08:44:02

没有谁知道吗

mowandao1985 发表于 2010-9-7 11:03:10

这个肯定是不行的了。
方法一:
Browser("OA系统").Page("OA系统").Frame("content_frame").WebList("month").Object.value="5"
由于这是个WebList控件值可以用select来操作而不是set,所以上面代码(赋值)不会运行成功。

方法二:
Browser("OA系统").Page("OA系统").Frame("content_frame").WebList("month").SetTOProperty "selection","5"
你使用SetTOProperty方法只能在对象库中给其增加属性值,但是脚本在运行时实际需要的是运行时存在的对象。
如:你虽然通过SetTOProperty方法给对象在对象库中增加了个选项:
Browser("OA系统").Page("OA系统").Frame("content_frame").WebList("month").SetTOProperty "all items","7;8;9;5"
但,实际运行的时候,这个weblist控件的下拉框的值,还是7,8,9没变.没有5,所以选择的时候肯定会报错。

要认脚本跑起来就得保证你所要选择的值存在,而你操作的只是对象库中的值,实际显示页面中,不会因为你在对象库中增加了,就会在
页面增加。所以行不通。
我不知道下拉框这3个月份是怎样控制显示的。
还有既然只提供了7.8.9月份的查询,你又如何取查询5月份的呢,除非他提供了这个月的查询,或者你就只能到数据库中写sql查询啦。

fwind1 发表于 2010-9-8 09:03:42

???

TIB 发表于 2010-9-8 11:28:10

只有7、8、9,手工去测试能选5吗?

mowandao1985 发表于 2010-9-10 09:02:39

这样说吧,对象它分两种:
对象库对象和运行时对象。
脚本的回放是否成功是通过取得运行时对象,然后到对象库中去匹配对象,匹配成功脚本能顺利运行。
如果匹配不成功,就会报错,说在对象库中找不到该对象。
你的操作相当于再对象库中给WebList这个控件增加元素5.但是在实际运行中(运行时对象)5是不存在的。
既然不存在,你又怎么可以去操作呢。
就像一个选择题,有A、B、C、D四个答案,而你非要选“E”,那不明白着是错的吗?
如果你非要选E的话,除非你在题目中增加了“E”选项。
建议你多看看关于对象库的帖子,论坛上有很多。

kavensyw 发表于 2010-9-10 13:59:42

WebList,包含Index和Value。index和Value很可能不一致;
如果查询时,用的是Index字段,
你直接输入Value值,而没有对应的Index,肯定查询不到的
你选择的7、8、9是肯定会有Index对应的

比如程序设死了:
Index,Value
0,7
1,8
2,9
开发查询用的Index,选Value=7时,Index=0.
你自己设置Value=5,而没有对应的Index怎么查询

你可以问问开发,查询时是用的Index还是Value,
再设置相应的值,只要库中有的,就应该能查到了

[ 本帖最后由 kavensyw 于 2010-9-10 14:05 编辑 ]

kavensyw 发表于 2010-9-10 14:45:52

如果你想要的是改变下拉菜单的内容,参考以下步骤:
Browser("P&G BEAT").Page("P&G BEAT").WebList("ctl00$ctl00$ctl00$cphBase$cphC").Select "BabyCare"

'下面是下拉菜单内容相关的4个属性,通过修改其内容,来更改其名称
innertext = "==我是修改后的== HairCare PCC SkinCare MenCare BabyCare FemCare OralCare Laundry"
innerHTML = "<OPTION value=-1 selected>==我是修改后的==</OPTION> <OPTION value=1>HairCare</OPTION> <OPTION value=2>PCC</OPTION> <OPTION value=3>SkinCare</OPTION> <OPTION value=4>MenCare</OPTION> <OPTION value=5>BabyCare</OPTION> <OPTION value=6>FemCare</OPTION> <OPTION value=7>OralCare</OPTION> <OPTION value=8>Laundry</OPTION>"
outerHTML = "<SELECT class=skin_ddl_B id=ctl00_ctl00_ctl00_cphBase_cphContent_cphMain_ddlCategory onchange=ddlCategorySelectIndexChange() name=ctl00$ctl00$ctl00$cphBase$cphContent$cphMain$ddlCategory> <OPTION value=-1 selected>==我是修改后的==</OPTION> <OPTION value=1>HairCare</OPTION> <OPTION value=2>PCC</OPTION> <OPTION value=3>SkinCare</OPTION> <OPTION value=4>MenCare</OPTION> <OPTION value=5>BabyCare</OPTION> <OPTION value=6>FemCare</OPTION> <OPTION value=7>OralCare</OPTION> <OPTION value=8>Laundry</OPTION></SELECT>"
outertext = "==我是修改后的== HairCare PCC SkinCare MenCare BabyCare FemCare OralCare Laundry"
Browser("P&G BEAT").Page("P&G BEAT").WebList("ctl00$ctl00$ctl00$cphBase$cphC").Object.setAttribute "innerHTML",innerHTML
Browser("P&G BEAT").Page("P&G BEAT").WebList("ctl00$ctl00$ctl00$cphBase$cphC").Object.setAttribute "innerText",innertext
Browser("P&G BEAT").Page("P&G BEAT").WebList("ctl00$ctl00$ctl00$cphBase$cphC").Object.setAttribute "outerHTML",outerHTML
Browser("P&G BEAT").Page("P&G BEAT").WebList("ctl00$ctl00$ctl00$cphBase$cphC").Object.setAttribute "outer Text",outertext
页: [1]
查看完整版本: 问个WebList对象的问题