zoukankan      html  css  js  c++  java
  • 《SeleniumBasic 3.141.0.0

    Mozilla Firefox,中文俗称火狐浏览器,使用Gecko引擎。

    • Firefox浏览器的下载

    地址:http://www.firefox.com.cn/

    在其他浏览器中打开上述URL,点击“立即下载”按钮。

     

    下载Firefox-latest.exe可执行文件,双击并安装。

    安装结束后,默认安装位置位于:
    C:Program FilesMozilla Firefox
    手工启动Firefox浏览器,点击菜单“帮助”、“关于Firefox”

    可以看到版本号是67.0.4(32位)。

    看清楚版本号以后,就可以搜索与之匹配的驱动文件了。

    • 驱动文件的下载

    Firefox浏览器的驱动文件是geckodriver.exe,下载地址位于:

    https://github.com/mozilla/geckodriver/releases

    可以看到最新版是v0.26.0,向下滚动到Assets中,下载与Firefox版本适合的驱动文件。

    解压到E:SeleniumDrivers路径下。

    • 启动浏览器

    示例代码:

     

    Private WD As SeleniumBasic.IWebDriver
    Sub Baidu()
        On Error GoTo Err1
        Dim Service As SeleniumBasic.FirefoxDriverService
        Dim Options As SeleniumBasic.FirefoxOptions
        Set WD = New SeleniumBasic.IWebDriver
        Set Service = New SeleniumBasic.FirefoxDriverService
        With Service
            .CreateDefaultService driverPath:="E:SeleniumDrivers"
            .HideCommandPromptWindow = True
        End With
        Set Options = New SeleniumBasic.FirefoxOptions
        With Options
            .BrowserExecutableLocation = "C:Program FilesMozilla Firefoxfirefox.exe"
        End With
        WD.New_FirefoxDriver Service:=Service, Options:=Options
        WD.URL = "https://www.baidu.com"
        Dim form As SeleniumBasic.IWebElement
        Dim keyword As SeleniumBasic.IWebElement
        Dim button As SeleniumBasic.IWebElement
        Set form = WD.FindElementById("form")
        Set keyword = form.FindElementById("kw")
        keyword.Clear
        keyword.SendKeys "好看视频"
        Set button = form.FindElementById("su")
        button.Click
        Debug.Print WD.Title, WD.URL
        Debug.Print WD.PageSource
        MsgBox "下面退出浏览器。"
        WD.Quit
        Exit Sub
    Err1:
        MsgBox Err.Description, vbCritical
    End Sub
    
    Sub Music()
        On Error GoTo Err1
        Dim Service As SeleniumBasic.FirefoxDriverService
        Dim Options As SeleniumBasic.FirefoxOptions
        Dim Actions As SeleniumBasic.Actions
        Dim Utility As SeleniumBasic.Utility
        Dim Keys As SeleniumBasic.Keys
        Dim i As Integer
        Set WD = New SeleniumBasic.IWebDriver
        Set Utility = New SeleniumBasic.Utility
        Set Actions = New SeleniumBasic.Actions
        Set Keys = New SeleniumBasic.Keys
        Set Service = New SeleniumBasic.FirefoxDriverService
        With Service
            .CreateDefaultService driverPath:="E:SeleniumDrivers"
            .HideCommandPromptWindow = True
        End With
        Set Options = New SeleniumBasic.FirefoxOptions
        With Options
            .BrowserExecutableLocation = "C:Program FilesMozilla Firefoxfirefox.exe"
        End With
        WD.New_FirefoxDriver Service:=Service, Options:=Options
        WD.URL = "https://music.163.com/#"
        WD.Manage.Timeouts.PageLoad = 59
        Utility.Sleep 3000
        Dim search As SeleniumBasic.IWebElement
        Dim iframe As IWebElement
        Dim items() As SeleniumBasic.IWebElement
        Dim a As SeleniumBasic.IWebElement
        Dim item As SeleniumBasic.IWebElement
        Dim result As Variant
        Dim lockicon As SeleniumBasic.IWebElement
        Dim prv As SeleniumBasic.IWebElement
        Dim play As SeleniumBasic.IWebElement
        Set search = WD.FindElementById("srch")
        If search Is Nothing = False Then
            search.Clear
            Utility.Sleep 1000
            search.SendKeys "周华健"
            Utility.Sleep 1000
            search.SendKeys Keys.Enter
            Utility.Sleep 1000
            Set iframe = WD.FindElementById("g_iframe")
            WD.SwitchTo.Frame iframe
            Set a = WD.FindElementByLinkText("单曲")
            a.Click
            Utility.Sleep 1000
            items = WD.FindElementsByCssSelector("[class='opt hshow']")
            For i = 0 To UBound(items)
                Set item = items(i)
                result = WD.ExecuteScript("arguments[0].scrollIntoView(true);", item)
                Set Actions = New SeleniumBasic.Actions
                Actions.Create WD
                Utility.Sleep 1000
                Actions.MoveToElement(item).Perform
                Utility.Sleep 1000
                item.FindElementByTagName("a").Click
            Next i
            WD.SwitchTo.DefaultContent
            Set lockicon = WD.FindElementByClassName("btn")
            lockicon.Click
            Utility.Sleep 1000
            Dim div As SeleniumBasic.IWebElement
            Dim buttons() As SeleniumBasic.IWebElement
            Set div = WD.FindElementById("g_player").FindElementByClassName("btns")
            buttons = div.FindElementsByTagName("a")
            Utility.Sleep 1000
            buttons(0).Click
            buttons(2).Click
            If buttons(1).GetAttribute("data-action") = "play" Then
                buttons(1).Click
            End If
        End If
        Stop
        WD.Quit
        Exit Sub
    Err1:
        Stop
        Resume
    End Sub

     

    • 运行截图

     

     

  • 相关阅读:
    ORA-39126 KUPW$WORKER.PUT_DDLS [TABLE_STATISTICS]中Worker发生意外致命错误
    C# 9 新特性 —— 增强的 foreach
    在 xunit 测试项目中使用依赖注入
    gitee.com 码农中添加私有仓库并通过ssh链接
    强化学习 —— reinforce算法中更新一次策略网络时episodes个数的设置对算法性能的影响 —— reinforce算法中迭代训练一次神经网络时batch_size大小的不同设置对算法性能的影响
    如何在 Ubuntu18.04 server 服务器版本的操作系统下 配置IP
    东北某海滨城市的某高校的某分校区的校园网登录程序,(python3, 模拟浏览器的登入方式)
    强化学习中经典算法 —— reinforce算法 —— (进一步理解, 理论推导出的计算模型和实际应用中的计算模型的区别)
    【转载】 Linux 设置CPU Performance模式
    深度学习中使用TensorFlow或Pytorch框架时到底是应该使用CPU还是GPU来进行运算???
  • 原文地址:https://www.cnblogs.com/ryueifu-VBA/p/14606579.html
Copyright © 2011-2022 走看看