vbs数据驱动

2010-03-01  孙明星 

Class SDateSheet
 Dim oExcel
'根据列名返回列号
 function getcol(fieldname)
    Dim fieldno
   
    fieldno=1
     do   while   not oExcel.Cells(1,fieldno).Value=""
   If fieldname=oExcel.Cells(1,fieldno).Value Then
    getcol=fieldno
    Exit do
   End If
     fieldno=fieldno+1
  loop
 End function
'配置需要的excel对象
 Function setfileandsheet(filename,sheetname)
    set oExcel = CreateObject( "Excel.Application" )
  oExcel.WorkBooks.Open( filename )
        oExcel.WorkSheets(sheetname).Activate
        oExcel.Visible = True
 End Function
 Function closeexl
  oExcel.WorkBooks.Close
 End Function
'根据列名和行号读取数据
 Function Sgetdate(rowno,colname)
    fieldno=getcol(colname)
  Sgetdate=oExcel.Cells(rowno,fieldno).Value
 End Function
End Class
 
Sub delay(obj)
 Do
WScript.Sleep 1000
 Loop Until CInt(obj.readyState)=4
End Sub

'以下是一个例子。直接请求google搜索某一个关键字。弹出显示response中的搜索框的内容

Dim rowno
'从第二行开始读数据,因为第一行是列名
rowno=2
Set aaa=new SDateSheet
'载入参数化文件并制定sheet
call aaa.setfileandsheet("E:\vbsscripttest\test.xls",1)
'开始操作,准备部分
Set ie = CreateObject("internetexplorer.application")
ie.Visible = true
'循环开始,测试部分
While  not  aaa.oExcel.Cells(rowno,1).Value=""
'aaa.Sgetdate(rowno,"name")使用excel中的列
ie.Navigate "http://www.google.cn/search?hl=zh-CN&newwindow=1&q="   & aaa.Sgetdate(rowno,"name") &  "&aq=f&oq="
Call delay(ie)
set qset=ie.document.getElementsByName("q")
msgbox qset(0).value
rowno=rowno+1
Wend
'结束操作
Call aaa.closeexl
Set aaa=nothing
Set ie=nothing
-----------------
以下是E:\vbsscripttest\test.xls 第一个sheet的内容
name gander
sunmx male
yemn male
vicky female
 
现在就用了name这个列。
376°/3730 人阅读/3 条评论 发表评论

欧洁  2010-03-01

楼主高人,看得晕,这些程序是在做什么呀


王恩建  2010-03-01

欧洁: 楼主高人,看得晕,这些程序是在做什么呀
从excel文件读取数据,把读取得数据提交到google,然后从google响应的内容中读取输入框的内容。

博主这段代码可能是一个简单的自动化测试例子。


孙明星  2010-03-02

欧洁: 楼主高人,看得晕,这些程序是在做什么呀
vbs获取ie对象通过dom可以直接操作ie和获取上面的元素。这里想这给这种纯vbs的脚本弄个数据驱动的方法。


登录 后发表评论