【问题标题】:How to minimize or hide the Geckodriver in Selenium?如何最小化或隐藏 Selenium 中的 Geckodriver?
【发布时间】:2020-07-22 23:11:48
【问题描述】:

这就是我所拥有的:


from selenium import webdriver
driver = webdriver.Firefox()

如何让geckodriver 最小化或隐藏打开?

【问题讨论】:

    标签: python selenium firefox geckodriver minimize


    【解决方案1】:

    您必须将 firefox 驱动程序选项设置为 headless 以使其最小化打开。这是执行此操作的代码。

    fireFoxOptions = webdriver.FirefoxOptions()
    fireFoxOptions.set_headless()
    driver = webdriver.Firefox(firefox_options=fireFoxOptions)
    

    如果这对您不起作用,您可以使用其他方法。查看其他 SO 问题:How to make firefox headless programmatically in Selenium with python?

    【讨论】:

    • 我说的是 geckodriver,而不是浏览器。
    • 那么“打开 geckodriver 最小化”是什么意思 - geckodriver 是与 Firefox 浏览器通信的东西。我不确定我是否理解你想通过最小化驱动程序来做什么,你能澄清一下吗?
    • 好吧,我想让用户看不到浏览器和驱动,我已经有了隐藏浏览器的答案。
    【解决方案2】:

    壁虎司机

    geckodriver 的核心形式是一个代理,用于使用与 W3C WebDriver 兼容的客户端与基于 Gecko 的浏览器进行交互。

    该程序提供WebDriver protocol 描述的HTTP API 以与Gecko 浏览器(例如Firefox)进行通信。它通过充当本地端和远程端之间的代理将调用转换为Firefox remote protocol

    所以或多或少它就像一项服务。所以不应该出现最小化 GeckoDriver 的问题。


    最小化 Mozilla Firefox 浏览器

    Selenium 驱动的 GeckoDriver 启动 浏览上下文 默认以半最大化模式打开。也许在 browsing contextminimized 执行测试时会违反所有最佳实践,因为 Selenium 可能会失去对 Browsing Context 的关注并且在测试执行期间可能会引发异常

    然而,Selenium 的 客户端确实有一个minimize_window() 方法,它最终有效地最小化了Chrome 浏览上下文


    解决方案

    您可以使用以下解决方案:

    • 火狐

      from selenium import webdriver
      
      options = webdriver.FirefoxOptions()
      options.binary_location = r'C:\Program Files\Mozilla Firefox\firefox.exe'
      driver = webdriver.Firefox(firefox_options=options, executable_path=r'C:\WebDrivers\geckodriver.exe')
      driver.get('https://www.google.co.in')
      driver.minimize_window()
      
    • from selenium import webdriver
      
      options = webdriver.ChromeOptions()
      options.add_argument("--start-maximized")
      options.add_experimental_option("excludeSwitches", ["enable-automation"])
      options.add_experimental_option('useAutomationExtension', False)
      driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
      driver.get('https://www.google.co.in')
      driver.minimize_window()
      

    参考

    您可以在以下位置找到详细的相关讨论:


    tl;博士

    How to make firefox headless programmatically in Selenium with python?

    【讨论】:

    • 我说的是 geckodriver,而不是浏览器。
    • @JohnIson 您应该评论回复我对您问题的评论,而不是评论我的回答。请删除此评论。
    • @JohnIson 查看更新的答案并告诉我状态。
    • @JohnIson 没有任何显着差异。我在回答中提供的代码块旨在为将来介入的读者提供清晰的画面。
    • GeckoDriver是服务,你真的能看到geckodriver服务吗?
    猜你喜欢
    • 2018-02-07
    • 2022-11-27
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 2020-03-05
    相关资源
    最近更新 更多