我被分配了自动化基于 Web 的任务的任务(对于 HTTPS 网站)。用户目前正在用数据填写 Excel 表,他们现在希望以直接控制浏览器并填写数据的方式自动化 Excel。
我发现 iMacros Scripting 版本是一个可能的解决方案,我想知道是否有任何其他类似的工具可用于控制浏览器和填充数据。
我还查看了 Selenium 客户端驱动程序,但我不确定如何在 Excel VBA 中使用它。
任何帮助,将不胜感激。
谢谢,
我被分配了自动化基于 Web 的任务的任务(对于 HTTPS 网站)。用户目前正在用数据填写 Excel 表,他们现在希望以直接控制浏览器并填写数据的方式自动化 Excel。
我发现 iMacros Scripting 版本是一个可能的解决方案,我想知道是否有任何其他类似的工具可用于控制浏览器和填充数据。
我还查看了 Selenium 客户端驱动程序,但我不确定如何在 Excel VBA 中使用它。
任何帮助,将不胜感激。
谢谢,
您可以通过安装此处提供的工具来使用 Visual Basic 编辑器中的 Selenium:
http://code.google.com/p/selenium-vba/
有一个 Selenium IDE 插件可以自动在 VBA 中录制脚本,还有一个安装包可以在 Visual Basic 编辑器中运行 Selenium 命令。
以下示例启动 Firefox,在第一列打开链接,将标题与第二列进行比较,并将结果传递到第三列。使用的数据位于工作表中,位于名为“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
此示例打开 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
[]的
我使用此代码从 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")