迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python Selenium Headless:以 Headless 模式打开 Chrome 浏览器

作者:迹忆客 最近更新:2023/07/02 浏览次数:

本篇文章介绍了如何在 Python 中使用 Selenium 运行浏览器无头模式。


在 Python 中使用 Selenium 以无头模式运行 Chrome 浏览器

要说 headless 浏览器,你也可以称它们为真正的浏览器,只不过它们是在后台运行的; 您将无法在任何地方看到它们,但它们仍在后台运行。

在某些情况下您会需要这种无头浏览器。

因为当您在普通浏览器中工作时,您将看到 UI 出现并在本地系统上工作时操作其他应用程序。 因此,您将无法执行任何其他操作,从而导致附加操作在您面前运行。

假设您在无头模式下运行脚本。 为了让您可以继续工作,有几种浏览器可以使用无头模式,例如 phantomJS、HtmlUnit 等等,请参阅此处。

我们还为 Chrome 和 Firefox 提供了无头选项。 要了解如何使用 Chrome 在 Selenium 中以无头模式运行测试,我们首先需要创建一个 Python 文件。

我们将通过导入一些必需的类和模块来跳转到代码中。

import time
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
from selenium import webdriver
from selenium.webdriver.chrome.service import Service

我们刚刚注意到 webdriver.Chrom() 有不同的选项,如下所示。

python selenium headless 在无头模式下打开 chrome 浏览器 - 示例一

我们使用了一个应该启动 Chrome 会话的服务参数。 ChromeDriverManager()将帮助我们下载驱动程序并设置路径。

我们将使用 get() 方法并向其传递一个 URL,我们将在其中尝试查找搜索框,然后我们将使用 find_element() 来使用我们想要搜索的一些随机文本。

DV=webdriver.Chrome(service=Service(ChromeDriverManager().install()))
DV.get('http://www.google.com')
DV.find_element(By.NAME,'q').send_keys('Elon Musk')

time.sleep(2)

如果我们运行 python 脚本,您会注意到它不会在无头模式下运行并转到搜索框并搜索给定的查询。

python selenium headless 在无头模式下打开 chrome 浏览器 - 输出一

现在我们将使用第二个参数,称为选项,并且我们需要提供选项。 我们有一个来自不同包的选项类; 您可以将其用于 Opera、Chrome 和 Firefox。

由于我们使用的是 Chrome,因此我们将使用 Chrome.options 中的 Options() 类。因此,我们将创建一个名为 OP 的对象来调用 Options() 类。

有两种选项或不同的方式可以在无头模式下运行测试。 首先,您必须使用 add_argument() 方法并在其中传递 --headless 。

为了实现这种效果,我们必须将 OP 传递给 options 参数。

import time
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

OP=Options()
OP.add_argument('--headless')

DV=webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=OP)
DV.get('http://www.google.com')
DV.find_element(By.NAME,'q').send_keys('Elon Musk')

完成后,您将看到测试将以无头模式运行,并且您将看不到任何内容。

python selenium headless 在无头模式下打开 chrome 浏览器 - 输出一

为了检查是否被搜索到,我们将使用 get_screenshot_as_file() 方法在无头模式下捕获屏幕截图。 它将以无头模式打开浏览器并立即抓取屏幕截图。

DV.get_screenshot_as_file(os.getcwd()+'/screenshot.png')

现在我们得到了后台发生的情况的屏幕截图。

python selenium headless 在无头模式下打开 chrome 浏览器 - 截图一

假设你是一个经常犯拼写错误的人,有时很难记住 OP.add_argument('--headless')。 然后,我们还有一种选择:称为 headless 的类型属性。

默认情况下,它设置为False,您可以将其更改为True,因此不需要使用 add_argument()

import time
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
import os

OP=Options()
OP.headless=True
# OP.add_argument('--headless')

DV=webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=OP)
DV.get('http://www.google.com')
# DV.find_element(By.NAME,'q').send_keys('Elon Musk')
DV.find_element(By.NAME,'q').send_keys('mark zuckerberg')
DV.get_screenshot_as_file(os.getcwd()+'/screenshot.png')

重新运行此脚本后,我们获得了后台正在执行的操作的屏幕截图。

python selenium headless 在无头模式下打开 chrome 浏览器 - 截图二

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Python 中使用 Selenium 从下拉菜单中选择选项

发布时间:2023/07/03 浏览次数:150 分类:Python

本篇文章将讨论使用 Python 中的 selenium 从网页上的下拉菜单中进行选择。使用 Python 中的 Selenium 从下拉菜单中选择选项 首先,我们需要启动 webdriver 类的对象来创建浏览器窗口。

Python 中 Selenium 的屏幕截图

发布时间:2023/07/03 浏览次数:143 分类:Python

本篇文章将介绍如何在 Python 中使用 selenium 捕获自动浏览器的屏幕截图。使用 save_screenshot() 函数在 Python 中使用 selenium 捕获屏幕截图

Python 中使用 Selenium 隐式等待

发布时间:2023/07/03 浏览次数:57 分类:Python

selenium 包用于使用 Python 脚本进行自动化和测试。 我们可以使用它来访问网页中的各个元素并使用它们。Python 中使用 Selenium 隐式等待 如果我们尝试获取不可用的元素,则会引发 ElementNotVisibl

在 Python 中使用 Selenium 查找元素

发布时间:2023/07/03 浏览次数:101 分类:Python

本篇文章将介绍在 Python 中使用 selenium 查找网页中元素的不同方法。在 Python 中使用 Selenium 查找元素 元素是网页的基本构造,用于定义其结构。 我们可以利用硒的不同功能来查找元素。

Python 中使用 Selenium 单击按钮

发布时间:2023/07/03 浏览次数:115 分类:Python

本篇文章将介绍如何在 Python 中使用 selenium 单击网页上的按钮。Python 中使用 Selenium 单击按钮 我们将首先导入 webdriver 类并创建其对象以启动连接并打开 Web 浏览器。

Python 中 Selenium 的 send_keys() 函数

发布时间:2023/07/03 浏览次数:117 分类:Python

send_keys() 是将数字、文本和符号等键盘输入发送到应用程序的文本框的过程。 send_keys() 是 WebDriver 的一部分,每个键盘输入都会发送到此元素。Python 中 Selenium 的 send_keys() 函数

Python 中 Selenium 的 getAttribute() 函数

发布时间:2023/07/03 浏览次数:162 分类:Python

本文将解释如何使用 Selenium 的 getAttribute() 方法。Selenium Python 中的 getAttribute() 函数 getAttribute() 方法可以检索元素属性,例如锚标记的 href 属性。 该函数最初将尝试返回指定属性的值。

在 Python 中使用 Selenium 按文本查找元素

发布时间:2023/07/03 浏览次数:92 分类:Python

我们将通过示例介绍在Python中使用selenium通过文本查找元素的方法。在 Python 中使用 Selenium 按文本查找元素软件测试是检查应用程序是否满足用户需求的技术。

在Python中添加Selenium Web Driver等待

发布时间:2023/07/03 浏览次数:136 分类:Python

本文将介绍在Python中在Selenium Web驱动程序中添加等待的示例。Python Selenium Web 驱动程序等待 大多数 Web 应用程序都使用 AJAX 技术。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便