首页 > 其他分享 >Selenium Headless模式:无头浏览器的使用与优势

Selenium Headless模式:无头浏览器的使用与优势

时间:2024-03-19 18:35:14浏览次数:18  
标签:浏览器 Selenium 模式 Headless 无头 div

简介

在现代Web开发和测试中,自动化工具的应用变得越来越重要。Selenium作为一种流行的自动化测试工具,为开发者提供了强大的功能来模拟用户行为和进行网页测试。其中,Selenium的Headless模式,即无头浏览器,为开发者提供了一种更高效、更隐秘的测试方式。本文将探讨Selenium Headless模式的使用方法、优势以及实际应用场景。

什么是Selenium Headless模式?

Selenium Headless模式是指在执行测试过程中,不打开可视化的浏览器界面,而是在后台以无头(Headless)方式运行。这意味着测试过程对用户是不可见的,所有操作都在后台自动进行。Selenium支持多种浏览器的Headless模式,包括Chrome、Firefox等。

无头模式的优势

  1. 速度与性能优势

由于无需加载可视化界面,Headless模式下的测试速度通常比普通模式更快。这对于大规模测试或需要频繁执行的测试场景非常有利。

  1. 隐秘性与稳定性

Headless模式下的测试不会弹出可见的浏览器窗口,可以在后台静默运行,不影响用户体验。同时,由于无需考虑浏览器窗口的操作,测试更稳定,容易集成到持续集成(CI)系统中。

  1. 节省资源

在一些资源受限的环境中,如服务器上的自动化测试,使用Headless模式可以节省系统资源,提高性能和稳定性。

无头模式的使用

再使用无头模式之前,我们需要先导入无头模式,使用Selenium的Headless模式非常简单,只需在初始化浏览器对象时添加相应的选项即可。如下:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options  # 导入无头浏览器的包

opt = Options()
opt.add_argument('--headless')  # 设置为无头
opt.add_argument('--disable-gpu')  # 设置没有使用gpu

# 1.创建浏览器对象
web = Chrome(options= opt)  # 然后配置放到浏览器上

使用示例

from selenium.webdriver import Chrome
from selenium.webdriver.common.keys import Keys   
from selenium.webdriver.chrome.options import Options  # 导入无头浏览器的包
 
opt = Options()
opt.add_argument('--headless')  # 设置为无头
opt.add_argument('--disable-gpu')  # 设置没有使用gpu
 
# 1.创建浏览器对象
web = Chrome(options= opt)  # 然后配置放到浏览器上
 
 
# 2.打开一个网址
web.get('http://lagou.com')
 
# 定位到地址:北京,然后点击他
el = web.find_element('xpath','//*[@id="changeCityBox"]/ul/li[1]/a') #这是新版的,旧版是:find_element_by_xpath
el.click() # 点击事件
 
# 搜索框输入:python ,输入回车/点击搜索按钮
web.find_element('xpath','//*[@id="search_input"]').send_keys('python',Keys.ENTER) # Keys.ENTER是回车
 
div_list = web.find_elements('xpath','//*[@id="jobList"]/div[1]/div')
for div in div_list:
    job_name = div.find_element('xpath','./div/div/div/a').text
    job_money = div.find_element('xpath','./div/div/div[2]/span').text
    company_name = div.find_element('xpath', './div/div[2]/div/a').text
    print(job_name,job_money,company_name) 
 

总结

通过本文的介绍,我们了解了Selenium Headless模式的基本概念、使用方法、优势以及最佳实践。Headless模式为自动化测试带来了更高效、更隐秘的测试方式,对于提高测试效率、节省资源、提高测试稳定性都具有重要意义。

标签:浏览器,Selenium,模式,Headless,无头,div
From: https://www.cnblogs.com/hogwarts/p/18083669

相关文章

  • 使用Selenium执行JavaScript脚本:探索Web自动化的新领域
    前言在我们使用selenium进行自动化测试的时候,selenium能够帮助我们实现元素定位和点击输入等操作,但是有的时候,我们会发现,即使我们的元素定位没有问题,元素也无法执行操作;也有部分情况是我们无法直接定位滚动条河时间控件来进行操作,这个时候,我们就需要借助JavaScript来解决问题。......
  • CentOS安装无GUI的Chrome浏览器
    原文:https://blog.taliove.com/centos-headless-chrome使用golang的chromedp组件在无gui环境的centos中部署1、添加ChromeYum源在yum.repos.d内创建google-chreom.repo:vim/etc/yum.repos.d/google-chrome.repo拷贝以下内容到该文件内:[google-chrome]name=google-chr......
  • 《手把手教你》系列技巧篇(四十二)-java+ selenium自动化测试 - 处理iframe -下篇(详解教
    1.简介经过宏哥长时间的查找,终于找到了一个含有iframe的网页。所以今天这一篇的主要内容就是用这个网页的iframe,宏哥给小伙伴或者童鞋们演示一下,在处理过程中遇到的问题以及宏哥是如何解决的。2.iframe是什么iframe就是我们常用的iframe标签:<iframe>。iframe标签是......
  • 软件测试 自动化测试selenium API
    文章目录1.webdriverAPI1.1定位元素1.1.1CSS选择器定位元素1.1.2XPath定位元素1.1.3标签定位元素1.1.4关闭浏览器1.1.5css选择器和xpath选择器之间的区别2.操作测试对象2.1鼠标点击、键盘输入、获取元素文本2.2submit提交表单3.添加等待3.1添加强......
  • 《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(
    1.简介 在实际工作中,我们需要对处理的元素进行高亮显示,或者有时候为了看清楚做跟踪鼠标点击了哪些元素需要标记出来。今天宏哥就在这里把这种测试场景讲解和分享一下。2.用法创建一个执行JS的对象,也就是JavascriptExecutor对象,这个对象是由driver进行强制类型转......
  • 爬取汽车之家:基于selenium和request自动获取汽车信息并保存到CSV文件matplotlib和seab
    在网络时代,信息获取变得越来越重要,而Python作为一门强大的编程语言,其爬虫技术可以帮助我们自动获取互联网上的各种信息。今天,我们将学习如何使用Python编写爬虫程序,自动获取汽车信息,并将这些信息保存到CSV文件中。1.引入必要的库首先,我们需要引入一些必要的库,包括csv用于......
  • macos selenium msedgedriver 浏览器驱动 爬虫
    MacOSSelenium跨浏览器环境搭建在macOS上使用Selenium启动新版Edge的方式如下。macOS版本:10.15.5Edge版本:83.0.478.58下载83版本对应的新版Edge驱动:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/#downloads解压并移动到/usr/loca......
  • 服务器端jupyter notebook映射到本地浏览器的操作【文章转自https://www.cnblogs.com/
    这篇文章转自主要介绍了服务器端jupyternotebook映射到本地浏览器的操作,做科研经常有这样的需求:即需要借助服务器的计算资源,本地编辑的工程文件需要每次都传到服务器才能运行。jupyter是较好的交互式编辑工具,有没有一种方式可以在jupyter上编辑属于服务器的文件呢?这就引出了我们......
  • 关闭Mac 双指左右滚动功能(浏览器前进、后退丢失页面)
    关闭所有浏览器的前进后退功能系统偏好设置=>触控板=>更多手势=>在页面之间轻扫取消勾选即可。如下图所示:仅关闭Chrome的前进后退功能如果是Chrome浏览器,还可以使用下面这份方法在终端输入执行下面两条命令,然后重启Chrome,需要注意的是Chrome重启需要完全退出程序......
  • 一定要会用selenium的等待,3种等待方式解读
    很多人问,这个下拉框定位不到、那个弹出框定位不到…各种定位不到,其实大多数情况下就是两种问题:有frame没有加等待殊不知,你的代码运行速度是什么量级的,而浏览器加载渲染速度又是什么量级的,就好比闪电侠和凹凸曼约好去打怪兽,然后闪电侠打完回来之后问凹凸曼你为啥还在穿鞋没出......