nonsuch 发表于 2006-2-21 17:20:24

神啊!你在哪里?近来救救我吧。

小妹的目的:在开始-》WINRUNNER-》SAMPLE APPLICATIONS-》FLIGHT 4A中订从Paris到London的机票,要求能够每次都从已经做好的数据表中取数据。数据表default.xls如下:
Flight        From        Departure        To        Arrival        Airline        Price
10353        PAR        11:20 AM        LON        12:43 PM        SR        $168.20
10503        PAR        8:00 AM        LON        10:30 AM        AF        $123.47
10506        PAR        10:24 AM        LON        11:24 AM        AF        $126.47
我RUN一次下面的脚本,只要求买一张机票。比如我想买Flight 10503这张机票,下面中的问号该用什么来代替?小妹拜求高手给个答案。
我的脚本如下:

# Shell_TrayWnd
        set_window ("Shell_TrayWnd", 3);
        button_press ("Start");

# BaseBar
        set_window ("BaseBar", 4);
        toolbar_select_item ("ToolbarWindow32_1", "程序(P);WinRunner;Sample Applications;Flight 4A");

# Login
        set_window ("Login", 3);
        obj_type ("Agent Name:","<kCtrl_L-kShift_L>");
        edit_set ("Agent Name:", "sandy");
        obj_type ("Agent Name:","<kTab>");
        password_edit_set("Password:", "kzptnyoslzjsaz");
        obj_type ("Password:","<kReturn>");

# Flight Reservation
        set_window ("Flight Reservation", 32);
        edit_set ("Date of Flight:", "06/02/21");
        list_select_item ("Fly From:", "Paris");# Item Number 4;
        list_select_item ("Fly To:", "London");# Item Number 2;
        obj_mouse_click ("FLIGHT", 34, 28, LEFT);

# Flights Table
        set_window ("Flights Table", 1);
table = "default.xls";
rc = ddt_open(table, DDT_MODE_READ);
if (rc!= E_OK && rc != E_FILE_OPEN)
        pause("Cannot open table.");
ddt_get_row_count(table,table_RowCount);
for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
{   
        ddt_set_row(table,table_Row);
       
        list_select_item ("Flight", "???");
          
        button_press ("OK");
}
ddt_close(table);
        button_press ("OK");

# Flight Reservation
        set_window ("Flight Reservation", 4);
        edit_set ("Name:", "sandy");
        button_press ("Insert Order");

feiyi_feiyi 发表于 2006-2-22 08:51:01

list_select_item ("Flight", "#2");

tails82 发表于 2006-2-22 10:12:34

高手,长见识了

feiyi_feiyi 发表于 2006-2-22 10:17:33

使用变量可以这样写呀
list_select_item ("Flight", "#"& row);
row为变量。

nonsuch 发表于 2006-2-22 10:20:11

谢谢楼上的!你说的能行,但是它的记数从0开始的。也就是说按你说的是取表中的第三行的值。
但是我想问的是能否通过一个函数表达式计算出当前变量table_Row的值来代替问号呢,请高手指点!

feiyi_feiyi 发表于 2006-2-22 10:30:24

不太明白你的意思,对于这样的问题,我是这样解决的
1.用list_get_items_count得到总数
2.用循环(变量从0开始)。
3.使用循环变量row.    list_select_item ("Flight", "#"& row);

[ 本帖最后由 feiyi_feiyi 于 2006-2-22 10:47 编辑 ]

nonsuch 发表于 2006-2-22 10:30:49

真的很感谢feiyi_feiyi的及时回复!
授人与鱼,不如授人与渔,可以告诉我们你学习Wirunner的学习心得和方法的话,菜鸟们会爱死你的!

feiyi_feiyi 发表于 2006-2-22 10:33:15

不用使用data drive wizard

nonsuch 发表于 2006-2-22 10:35:45

其实我就是想去使用data drive wizard,结果搞了半天还是没弄出来。

feiyi_feiyi 发表于 2006-2-22 10:41:07

使用data drive wizard也可以,但局限性很大,前提条件是你知道有多少个项,每个项是什么。对于不确定多少项的就没办法使用了。

shyfish 发表于 2006-2-25 13:12:44

for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
{   
      ddt_set_row(table,table_Row);
      CellVal = ddt_val(table, "Flight");
      list_select_item ("Flight", CellVal);
      button_press ("OK");
}
页: [1]
查看完整版本: 神啊!你在哪里?近来救救我吧。