09 2020 档案
摘要:SeleniumBasic中如何判断网页已经加载完成了呢?下面介绍一种通过执行JavaScript脚本的方式 Do If WD.ExecuteScript("return document.readyState") = "complete" Then Exit Do Else Application
阅读全文
摘要:使用Selenium启动Chrome浏览器,经常弹出如下这种对话框。 必须手工点击OK关闭该对话框才能继续往下运行。 解决方法有两个 方法一:删除注册表 打开注册表编辑器,找到如下注册表项,删除。这个操作需要管理员权限。 方法二:代码中设置选项(标记黄色的那行是关键) Dim Service As
阅读全文
摘要:SeleniumBasic中的Utility类有一个Equals方法,可以判断任意两个变量是否指向同一个实际对象。 例如百度搜索的文本框和按钮的HTML定义如下 <input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" au
阅读全文
摘要:在Chrome浏览器中按下F12,弹出开发工具,右侧有个设置按钮,点击一下。 左侧选择“Devices”,右侧看到可以模拟的设备列表,例如IPhone X 确认完以后,在VBA中设置Chrome选项。 Private WD As SeleniumBasic.IWebDriver Sub Baidu(
阅读全文
摘要:我们在做WEB自动化时,一般要等待页面元素加载完成后,才能执行操作,否则会报找不到元素的错误,这样就要求我们在有些场景下加等待时间。 SeleniumBasic有三种等待方式: 强制等待:与Selenium无关的一种堵塞线程的延时方法,固定毫秒数 隐式等待:设置一个等待时间,如果在这个等待时间内,网
阅读全文
摘要:一般情况下,Selenium只能操作由Selenium创建的浏览器,对于事先打开的浏览器是没办法控制的。 第一步: 在运行对话框中输入cmd,弹出命令提示符。输入命令: C:\Users\Administrator>"C:\Program Files (x86)\Google\Chrome\Appl
阅读全文
摘要:如果使用最简单的、默认的启动方式,Chrome浏览器启动以后,屏幕上弹出2个窗口,命令行窗口和浏览器。 浏览器的上方还显示一句话:正受到自动测试软件的控制。 通过启动前的配置,可以隐藏黑色命令行窗口,并且隐藏那句话。 Private WD As SeleniumBasic.IWebDriver Su
阅读全文
摘要:如果你的电脑中Chrome浏览器已经正确安装,相应的驱动的路径已经保存到环境变量中,那么SeleniumBasic只需要2行代码就可以启动浏览器 Private WD As SeleniumBasic.IWebDriver '声明一个变量 WD.New_ChromeDriver '直接启动Chrom
阅读全文
摘要:Capabilities类用于修改Web驱动程序的多个属性。Desired capabilities类提供一组键值对key-value,用于更改web驱动程序的各个属性,如浏览器名称、浏览器平台等。 SeleniumBasic中执行如下程序: Dim Caps As SeleniumBasic.IC
阅读全文
摘要:SeleniumBasic中的IWebDriver对象的ExecuteScript方法用于执行JavaScript脚本。语法如下 Function ExecuteScript(script As String, [arg0], [arg1], [arg2]) 后面3个是可选参数。 调用Execute
阅读全文
摘要:SeleniumBasic的GetScreenshot方法用于对网页或一个元素进行截图,截图的结果可以保存为本地图片,Base64字符串,或者字节数组。 Property AsBase64EncodedString As String 只读 Property AsByteArray As Byte(
阅读全文
摘要:SeleniumBasic中的IAlert对象,用于处理JavaScript弹窗。具有的方法有 Property Text As String 返回弹窗中的文字 Sub Accept():点击“确定” Sub Dismiss() :点击“取消” Sub Sendkeys(keysToSend As
阅读全文
摘要:下面以东萍象棋的棋谱搜索页面为例讲解。网址http://www.dpxq.com/hldcg/search/ 在该网页上方,“更改棋库”后面有个文本框,如果想要用SeleniumBasic修改“大师对局”这几个字,你需要分析页面构成,查看该网页元素位于何处。 按下F12,在开发工具中可以看到:大师对
阅读全文
摘要:一个浏览器可能打开多个网页窗口。Selenium中每个窗口都有一个句柄,句柄是一个文本字符串。Selenium在任何时刻只能操作和读写1个窗口,要操作其他窗口必须用SwitchTo切换进去。 假设浏览器中打开了百度、京东、新浪。下面的代码可以返回每个窗口的句柄 Dim windows() As St
阅读全文
摘要:SeleniumBasic的IWindow对象,可以实现浏览器的最大化,全屏,也可以获取和设置窗口的位置和大小。 该对象的属性和方法 Property Position As Position 只读 Property Size As Size 只读 Sub FullScreen() Sub Maxi
阅读全文
摘要:IWebDriver对象的Navigate方法产生一个INavigation对象,利用它可以让网页进行跳转,后退,前进,刷新等操作。 假设浏览器现在打开了百度首页 WD.Navigate.GoToUrl "https://haokan.baidu.com/?fr=pc_pz" Debug.Print
阅读全文
摘要:Cookie是浏览器把用户数据的信息经过加密保存到终端的数据形式。一个Cookie具有Name、Value、Domain、Path、Expiry这5个属性。 SeleniumBasic可以返回浏览器目前所有的Cookie,也可以自动创建Cookie添加到浏览器,还可以删除Cookie。 WD.man
阅读全文
摘要:SeleniumBasic中的Actions类可以实现鼠标和键盘操作。方法列表如下 其中标记为橙色的是键盘方面的操作。标记绿色的Create方法是创建行为时必须要运行的。 Function Click([onElement As IWebElement]) As Actions Function C
阅读全文
摘要:<html> <body> <div>你去过那些地方?</div> <br /> <select name="调查" multiple="multiple" size="8"> <option value="河南省">河南省</option> <option value="湖北省">湖北省</opt
阅读全文
摘要:SeleniumBasic中的IWebElement代表一个网页元素。关于如何获取网页元素,上一节已经讲过。 下面讲一下得到网页元素后,有哪些操作呢? Property Displayed As Boolean :是否显示 Property Enabled As Boolean :是否可用 Prop
阅读全文
摘要:SeleniumBasic的IWebDriver和IWebElement两个对象下面,都有如下16个函数,用于定位其他元素。 Function FindElementByClassName(className As String) As IWebElement Function FindElemen
阅读全文
摘要:由于SeleniumBasic支持非托管语言,在VBA、VB6中可以添加引用进行前期绑定。 VBS中使用CreateObject可以后期创建浏览器对象。在VBA中使用As声明的部分都删掉,因为VBS中不支持As关键字。 Public WD Main Sub Main() Set WD = Creat
阅读全文
摘要:如具有Selenium编程经验,一定很熟悉浏览器和驱动文件的配置,本节可以跳过。下面只给零基础的学员讲解。 Selenium技术实现过程会用到4个层次的东西:编程语言+对象库+驱动+浏览器,示意图如下: 在第一节课中,我们已经搞定了编程语言+对象库,对于V3来说,我们用的是VBA+SeleniumB
阅读全文
摘要:Selenium是一种非常流行的浏览器和网页自动化技术,开发人员可以使用C#、Java、Python等语言来操作Chrome、Firefox等浏览器。 VBA语言可以直接操作访问Microsoft Internet Explorer(IE)浏览器,但是IE浏览器的问题很多,最近不再受欢迎。 Chro
阅读全文
摘要:TableConverter使用教程
阅读全文