Управление веб-браузером с помощью Excel VBA - PullRequest
3 голосов
/ 20 сентября 2011

Мне была назначена задача автоматизации веб-задачи (для веб-сайта HTTPS).В настоящее время пользователи заполняют данные листа Excel данными, теперь они хотят автоматизировать Excel таким образом, чтобы он непосредственно контролировал браузер и заполнял данные.

Я нашел издание iMacros Scripting как возможноеРешение для этого, я хотел бы знать, есть ли другие подобные инструменты, которые можно использовать для управления браузером и заполнения данных.

Я также взглянул на Selenium Client Driver, но я неуверен, как использовать его в Excel VBA.

Любая помощь будет оценена.

Спасибо,

Ответы [ 3 ]

3 голосов
/ 06 марта 2012

Вы можете использовать Selenium из редактора Visual Basic, установив инструменты, представленные здесь:

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

Существует плагин Selenium IDE для автоматической записи сценария в VBA и установочный пакет для запуска команды Selenium в редакторе Visual Basic.

В следующем примере запускается 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 голос
/ 21 сентября 2011

Этот образец открытого сайта 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

[] s

0 голосов
/ 10 октября 2011

Я использую этот код для чтения данных из 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")
...