【问题标题】:How to make headless browser visible Python如何使无头浏览器可见 Python
【发布时间】:2017-12-25 21:57:54
【问题描述】:

我通过设置这个参数创建了一个无头 webdriver chrome 浏览器:

 chrome_options.add_argument("--headless")

然后使用以下命令打开浏览器:

driver = webdriver.Chrome(executable_path=os.path.abspath("chromedriver"), chrome_options=chrome_options)

是否可以在满足条件后让浏览器出现?我尝试使用以下方法再次删除该属性:

chrome_options.arguments.remove("--headless")

但这并没有做任何事情。

【问题讨论】:

    标签: python selenium webdriver headless google-chrome-headless


    【解决方案1】:

    当您通过设置启动--headless 实例时:

    chrome_options.add_argument("--headless")
    

    此外,无法在同一会话中再次显示浏览上下文


    原因

    当您使用ChromeOptions() 配置ChromeDriver 以在启动新的Chrome 浏览会话 的过程中启动 时,配置会烘焙chromedriver 可执行文件,并将持续到 WebDriver 的生命周期,并且保持不可编辑。因此,您修改当前正在执行的 WebDriver 实例的 ChromeOptions

    即使您能够提取 ChromeDriverChromeSession 属性,例如会话 IDCookies 和来自已启动的 ChromeDriverChrome 浏览会话 的其他会话属性,您仍然不会能够更改 ChromeDriver 的属性集。

    更简洁的方法是在 tearDown(){} 方法中调用 driver.quit()关闭销毁当前的ChromeDriver 和 Chrome 浏览器 实例,然后使用新的配置集跨越一组新的 ChromeDriverChrome 浏览器 实例。 p>


    参考文献

    您可以在以下位置找到一些相关讨论:

    【讨论】:

      【解决方案2】:

      当您将 --headless 参数传递给 chrome 时,它​​实际上是将实例创建为无头,而不是创建窗口并隐藏它,如果您想在满足条件时显示实例,您必须考虑不使用 --headless在 chrome 参数处。

      【讨论】:

        【解决方案3】:

        会话开始后,您将无法从 Selenium 会话中删除选项/参数。每个 Selenium 会话都是使用唯一的会话 ID 创建的,并使用传递给它的参数运行,直到被要求 .quit()。如果您在启动 Chrome 会话时将 --headless 选项传递给它,您将无法看到它运行。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-06
          • 1970-01-01
          • 2018-03-16
          • 2011-04-28
          相关资源
          最近更新 更多