使用Excel VBA控制Web浏览器

时间:2011-09-20 17:44:38

标签: vba excel-vba selenium-rc webautomation excel

我被分配了自动执行基于Web的任务的任务(对于HTTPS网站)。用户当前正在使用数据填写Excel表格,他们现在希望以直接控制浏览器并填写数据的方式自动化Excel。

我发现iMacros Scripting版本是这样做的可能解决方案,我想知道是否还有其他类似工具可用于控制浏览器和填充数据。

我还看了一下Selenium客户端驱动程序,但我不确定如何在Excel VBA中使用它。

任何帮助都将不胜感激。

谢谢,

3 个答案:

答案 0 :(得分:3)

您可以通过安装此处提供的工具来使用Visual Basic编辑器中的Selenium:

http://code.google.com/p/selenium-vba/

有一个Selenium IDE插件可以在VBA中自动记录脚本,还有一个安装包可以在Visual Basic编辑器中运行Selenium命令。

以下示例启动firefox,打开第1列中的链接,将标题与第2列进行比较,并将结果与​​第3列中的结果进行比较。 已使用的数据位于工作表中,名为“MyValues”。

Public Sub TC002()
   Dim selenium As New SeleniumWrapper.WebDriver, r As Range
   selenium.Start "firefox", "http://www.google.com" 
   For Each r In Range("MyValues").Rows
     selenium.open r.Cells(, 1)
     selenium.waitForNotTitle ""
     r.Cells(, 3) = selenium.verifyTitle(r.Cells(, 2))
   Next
   selenium.stop
End Sub

答案 1 :(得分:1)

此示例打开stackoverflow站点,显示IE

Sub OpenIE()
'officevb.com
Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")

ie.Navigate "http://www.stackowerflow.com"

 'wait load
 While ie.ReadyState <> READYSTATE_COMPLETE
  DoEvents
 Wend

ie.Visible = True

End Sub

[]的

答案 2 :(得分:0)

我使用此代码从excel读取数据并将其传递给selenium以执行“点击,选择,关闭等”任务,并且还可以将数据写入Excel。

这是在python中我不知道VB而且我知道perl如果你希望我也会在perl中给出相同的代码。

我跳这可能有所帮助。

from xlwt import Workbook

import xlrd

testconfigfilename="testconfig.xls"

    if (len(sys.argv) > 1):

        testconfigfilename=sys.argv[1]       

    wb = xlrd.open_workbook(testconfigfilename);

    wb.sheet_names();

    sh = wb.sheet_by_index(0); 'Sheet 0 - selenium server configuration'



    seleniumHost = sh.cell(1,0).value

    seleniumPort = int(sh.cell(1,1).value)

    testBaseURL = sh.cell(1,2).value

    browser = sh.cell(1,3).value

    timeout = int(sh.cell(1,4).value)

    path = sh.cell(1,5).value

outputwb = Workbook()

    outputsheet = outputwb.add_sheet("result",cell_overwrite_ok=True) #get the first sheet in the result xls 

outputsheet.write(RowNumber,colNumber,"data")