如何使用Excel VBA和Selenium自动化Firefox或Chrome

自动化的关键是使工作比以往任何时候都更快,更容易。那么,您需要花费很长时间去做什么?

在生产力方面,Excel是人们最常用的工具,可用于组织财务,通过在Excel工作表中设置URL组来管理项目,然后使用Windows中的IE对象直接从Excel内部自动启动URL组。

在这篇文章之后,许多读者提出了如何在Firefox或Chrome中执行相同的操作。由于Firefox和Chrome都没有Windows随附的可用于VBA自动化的类似对象,因此在其他浏览器上执行相同类型的操作需要额外的步骤。该步骤是安装Selenium VBA(Selenium的Windows COM包装器)。

它允许您从任何支持VBA的应用程序执行调用,以打开浏览器(不仅仅是IE)并控制该浏览器会议。它是一种功能强大的自动化工具,其使用如此广泛,以至于许多受欢迎的浏览器供应商都将Selenium作为其浏览器的本机部分。肯定会在未来几年内支持在自动化应用程序中使用它。

使用Selenium自动化Firefox和Chrome

在开始此项目之前,您需要下载并安装Selenium VBA包装器。然后,正如我在有关自动化IE的文章中所讨论的,要在Excel中编写任何VBA一样,您需要进入设计模式并查看代码。如果您之前从未做过,则只需进入“开发人员"菜单项,然后单击“设计模式"。单击“插入"按钮,单击ActiveX按钮并将其绘制到工作表上的某个位置。完成此操作后,单击按钮,然后单击“查看代码"。

在代码编辑器窗口的左下方,确保同时更改“名称"和“标题"以反映该按钮的用途。在这种情况下,该按钮将打开您在电子表格中列出的网址列表。在我的情况下,我仅将其命名为cmdLoadURLs,并将标题命名为“ Load URLs"(这就是按钮上显示的内容)。

接下来,您需要通过单击单击工具菜单,然后单击“参考",然后向下浏览到称为“ SeleniumWrapper类型库"的参考。选中该引用框,然后单击“确定"。

您现在准备开始使用Selenium包装器来编写浏览器自动化代码!

Selenium包装器的功能

Selenium VBA包装器为您提供了比我在这篇文章中向您展示的功能更多的功能。通过将Selenium对象定义为“ New SeleniumWrapper",您可以看到除WebDriver之外还有多少可用空间。当您键入句点时,它将下拉您可以控制的对象类型的所有元素,例如浏览器图像,PDF文件,键盘键等。

此示例代码将是使用WebDriver。在代码中使用Selenium WebDriver对象并键入句点后,它将下拉一堆非常长的方法和属性,可用于自动执行Web浏览器。

这可能需要一些时间时间来学习可用的所有内容,但是Google可以在Google代码页面上提供的示例后面提供一些很好的示例。不幸的是,据我所知,尚无直接使用Selenium的指南,但我将感谢任何能提供任何资源的读者!

编写您的VBA Selenium代码

在此示例中,就像IE中的文章一样,我创建了要自动在Firefox中打开的URL列表。然后,按照本文第一部分所述创建按钮。

按钮后面的代码很简单,但是我将解释每个部分的作用。首先,您需要启动Firefox应用程序。 “ selenium.start"方法将做到这一点。 setTimeout和setImplicitWait方法并不严格,但是如果浏览器由于某些原因没有响应,则可以防止应用程序永远锁定。

最后两行将Excel数据行设置为读取(第二行,第一个URL存储在电子表格中),然后执行“ selenium.open"方法从该电子表格中读取URL,然后在Firefox中打开它。

下一部分代码段使行指针递增,并读取列表中的下一个URL。如果该单元格不是空白,则它将使用SendKeys方法在Firefox中启动新标签页,从该销售中读取下一个URL,然后在该新标签页中打开该URL。

该脚本将循环播放遍历整个列表,直到所有URL在各自的选项卡中打开。这是第二次循环并在新选项卡中打开MUO之后的浏览器。

如果您想将此代码用于Chrome,只需要做的就是更改“ selenium.Start"行。

现在创建自己的脚本

如上所述,了解硒包装材料功能的最佳方法是键入“硒"。在您的代码中,点击句号,然后浏览非常长的可用属性和方法列表。例如,您可以使用.URL属性来获取Firefox或Chrome中当前打开的标签页的网址。

您可以看到,除了本文的范围。但是尝试一下,玩得开心。值得庆幸的是,大多数功能都会弹出帮助文本,向您显示每个功能期望的参数。在弄清楚如何使用它方面可以提供很大帮助。

您是否使用VBA来使计算机自动化?您是否曾经通过VBA自动化过浏览器会话?在下面的评论部分中分享您自己的技巧和经验!

标签: Google Chrome Microsoft Excel Mozilla Firefox Visual Basic编程