我手头上的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
|