我手头上的selenium 是2021-‎07-‎04年SeleniumBasic 3.141.0.0的。我们可以认为“Selenium”它最大的贡献就是在于把原来java、c#、python才能玩的东西,VFP同样能搞,因为它支持的浏览器非常多:Chrome、Firefox、Microsoft Edge、Internet Explorer、Opera、Safari、QQ和360等浏览。我们可以理解在VFP上可以控制这些浏览器,去为了我们网页任务工作。比2016年进步了太多。稳定性和操控性都变好了。selenium是基于webdriver协议 几个概念,selenium, webdriver, chromedriver, chrome chrome可以作为浏览器代表(没有自己下载), ChromeDriver - WebDriver for Chrome  ,selenium 通过webdriver协议控制浏览器,那么首先你 得有ChromeDriver,没有自己网下载,官网提供了一些驱动,注意chromedriver的版本一定要与Chrome的版本一致,不然就不起作用。你首先需要查看你的Chrome版本,在浏览器中输入chrome://version/ 或者点击关于。

然后我们去下载:https://npm.taobao.org/mirrors/chromedriver/,我下载了52版本相似

 

直接下载就可以,解压下来是exe文件, 解压下来后,将这个exe文件放在你的代码调用的 目录下,

然后下载Selenium,运行RegAsm.bat(与regsvr32类似,熟悉的朋友应该都知道C#开发出来的DLL都是用它注册DLL,VFP才能调用)

会看到7个文件,功能如下: •    SeleniumBasic.dll和SeleniumBasic.tlb:这两个是类型库,提供了VBA环境中用到的SeleniumBasic命名空间中的对象、成员。在VBA工程中需要添加引用SeleniumBasic.tlb(我们VFP主要就是利用VBA来调用它) •    RegAsm.bat:用于注册dll,因为释放到你电脑以后,只是把文件放到磁盘上了,要让dll和tlb发挥作用,还需要向注册表中写入内容。因此需要用管理员权限运行该bat文件。 •    UnRegAsm.bat:反注册。当你不再需要V3时,用管理员权限运行这个bat,可以从注册表中移除写入的内容。相当于软件的卸载。 •    WebDriver.dll和WebDriver.Support.dll:.NET语言所需的动态链接库 

接下来我们使用VS2015对象浏览器查看一下这个SeleniumBasic.DLL,VFP的对象浏览器很弱,只能查看OLE COM的DLL,这个C#的不能查看.

上述准备好后,让我们用VFP调用它驱动chrome打开一个百度网页然后查找“VFP”试试

WD      = Createobject("SeleniumBasic.IWebDriver") Service = Createobject("SeleniumBasic.ChromeDriverService") Options = Createobject("SeleniumBasic.ChromeOptions" )

With Service       driverPath ="C:\Users\Administrator\Downloads\SeleniumBasic"     .CreateDefaultService( driverPath  )     .HideCommandPromptWindow = .F. Endwith 

With Options     .BinaryLocation = "C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe" Endwith

WD.New_ChromeDriver( Service  , Options ) WD.URL = "https://www.baidu.com" form = WD.FindElementById("form") keyword = form.FindElementById("kw") keyword.clear keyword.SendKeys( "VFP" ) button = form.FindElementById("su") button.Click ?WD.Title *!*    ?WD.URL *!*    ?WD.PageSource

参考阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: