前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VFP调用Selenium入门篇(一)

VFP调用Selenium入门篇(一)

作者头像
加菲猫的VFP
发布2022-10-27 10:39:36
1.8K0
发布2022-10-27 10:39:36
举报
文章被收录于专栏:加菲猫的VFP加菲猫的VFP

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

代码语言:javascript
复制
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

VFP的无人区,请狐友们备必跟上。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲猫的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档