代码之家  ›  专栏  ›  技术社区  ›  SIM

如何使硒铬驱动在VBA中无头运行?

  •  0
  • SIM  · 技术社区  · 7 年前

    我已经用vba和selenium结合编写了一些代码来解析一些电影标题及其在torrent网站上发布的年份。我用过 ChromeDriver 在我的刮刀里。当我执行脚本时,它会解析所需的字段。

    现在,我的问题是:我怎样才能做到 headless ? 在其他语言中,有一些选项可以添加到驱动程序中,以执行以下操作:

    chrome_options = Options
    chrome_options.add_argument ("--headless")
    chrome_options.add_argument ("--window-size=2160,3840")
    driver = WebDriver.Chrome(chrome_options = chrome_options)
    

    当要将选项添加到vba以使其无头时,我陷入了困境。

    这是我的基本方法(这是一种可行的方法,但浏览器是可见的):

    Sub Demo_Test()
        Dim driver As New ChromeDriver, post As Object
    
        driver.get "https://yts.am/browse-movies"
    
        For Each post In driver.FindElementsByClass("browse-movie-bottom")
            r = r + 1: Cells(r, 1) = post.FindElementByClass("browse-movie-title").Text
            Cells(r, 2) = post.FindElementByClass("browse-movie-year").Text
        Next post
    End Sub
    

    我们将非常感谢您对脚本无头运行的任何帮助。提前谢谢。

    1 回复  |  直到 7 年前
        1
  •  2
  •   SIM    7 年前

    当我已经在评论中找到了有效的解决方案时,我认为我不应该继续发表这篇文章 Florent B. 这就是我们如何 ChromeDriver 无头跑步。

    完整脚本:

    Sub Demo_Test()
        Dim driver As New ChromeDriver, post As Object
    
        With driver
            .AddArgument "--headless"   ''This is the fix
            .get "https://yts.am/browse-movies"
        End With
    
        For Each post In driver.FindElementsByClass("browse-movie-bottom")
            r = r + 1: Cells(r, 1) = post.FindElementByClass("browse-movie-title").Text
            Cells(r, 2) = post.FindElementByClass("browse-movie-year").Text
        Next post
    End Sub
    
    推荐文章