Linux 下如何利用无头浏览器执行web自动化的用例?本文以centos 7为例,安装chrome、利用Python + conda +selenium简单演示执行自动化。

  1. 安装chrome浏览器
  2. 安装chromedriver
  3. Linux安装好Python环境-conda
  4. 设置Chrome为无头浏览模式(只在后台内存中执行、无浏览器页面)
  5. 准备测试用例
  6. 执行用例

1、Chrome浏览器安装

  • 安装必要依赖
yum install liberation-fonts -y
yum install vulkan-1.1.97.0-1.el7.x86_64  -y
  • 下载安装Chrome浏览器
wget  https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpmrpm -ivh  google-chrome-stable_current_x86_64.rpm

2、chromedriver配置

  • chromedriver下载地址: https://registry.npmmirror.com/binary.html?path=chromedriver/
 # 查看chrome版本google-chrome --version# 根据版本下载对应chromedriverwget https://registry.npmmirror.com/-/binary/chromedriver/104.0.5112.79/chromedriver_linux64.zip# 解压
unzip chromedriver_linux64.zip# 将解压的文件放到 /usr/bin/ 文件下
mv chromedriver /usr/bin# 添加执行权限
chmod +x /usr/bin/chromedriver

3、Linux的Python环境-conda

  • 因为Anaconda3过大,现使用更小的miniconda,下载地址:https://docs.conda.io/en/latest/miniconda.html
# 下载
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh# 执行安装脚本,一路enter,提示yes则yes,直到提示:Thank you for installing Miniconda3!
sh Miniconda3-latest-Linux-x86_64.sh# 安装完成,配置环境变量(如已存在则直接跳过)
vim ~/.bashrc
export PATH="/root/miniconda3/bin:$PATH"# 如果提示没有命令,需刷新bashrc
source ~/.bashrc
  • conda使用,更多使用方法参考官方文档:https://docs.conda.io/projects/conda/en/latest/

# 安装完成查看版本
conda -V# 查看当前有哪些环境
conda env list # base 为默认环境(尽量不用)# 退出默认的环境
source activate
conda deactivate# 创建conda环境
conda create -n wulitou_py3.9 python==3.9 pytest selenium # -n 后为环境名称# python==3.9 指定Python版本# pytest selenium 为需要添加的依赖(可省略暂不添加,后续在添加)# 激活环境(使用环境)
conda activate wulitou_py3.9# 如在创建时未添加依赖,可添加(yes直接确认)
conda install pytest -y# 查看已安装的依赖
conda list

4、无头浏览器设置

chrome_options  = webdriver.ChromeOptions()# 设置driver以无头浏览的模式运行chrome_options.add_argument('-headless')# Linux上需要禁用sandboxchrome_options.add_argument('-no-sandbox')# 禁用GPU(可选)chrome_options.add_argument('-disable-gpu')self.driver= webdriver.Chrome(options=self.chrome_options)

5、准备测试用例

  • 因利用pytest、selenium,因此conda 需要提前添加依赖
conda install pytest -y
conda install selenium -y
  • 完整test_ui.py
# -*-coding:utf-8 -*-"""
@File   : test_ui.py
"""
import timeimport pytest
from selenium import webdriver
from selenium.webdriver.common.by import Byclass TestSahi:def setup_class(self):self.chrome_options  = webdriver.ChromeOptions()# 设置driver以无头浏览的模式运行self.chrome_options.add_argument('-headless')# Linux上需要禁用sandboxself.chrome_options.add_argument('-no-sandbox')# 禁用GPU(可选)self.chrome_options.add_argument('-disable-gpu')self.driver= webdriver.Chrome(options=self.chrome_options)# Linux需要手动设置大小,不使用最大化self.driver.set_window_size(1366, 768)self.driver.implicitly_wait(3)def teardown_class(self):time.sleep(2)self.driver.quit()# 业务代码def testAlter_01(self):self.driver.get("https://sahitest.com/demo/clicks.htm")# 虽无界面,依旧可截图查看self.driver.save_screenshot("sahitest-1.png")self.driver.find_element(By.XPATH, '//input[@value="click me"]').click()self.driver.find_element(By.XPATH, '//input[@value="click me"]').click()def testAlter_02(self):self.driver.get("https://sahitest.com/demo/clicks.htm")self.driver.find_element(By.XPATH, '//input[@value="click me"]').click()self.driver.save_screenshot("sahitest-2.png")self.driver.find_element(By.XPATH, '//input[@value="click me"]').click()self.driver.find_element(By.XPATH, '//input[@value="click me"]').click()self.driver.find_element(By.XPATH, '//input[@value="click me"]').click()self.driver.save_screenshot("sahitest-3.png")if __name__ == '__main__':pytest.main()# pytest  -vs test_ui.py

6、执行测试用例

pytest -vs test_ui.py

执行结束后,当前位置下生成对应截图

Linux无头浏览器的自动化测试实现相关推荐

  1. web课程第一次实验报告——利用自动化测试工具操纵无头浏览器,进行网页爬虫、截图等实验

    实验背景: 无头浏览器 无头浏览器是没有图形用户界面(GUI)的web浏览器,通常是通过编程或命令行界面来控制的.它会把网站加载到内存并执行页面上的 JavaScript,因为不会展示图形界面,所以运 ...

  2. 干货!一文搞定无头浏览器的概念以及在selenium中的应用

    无头浏览器 无头浏览器,即 Headless Browser,是一种没有界面的浏览器.它拥有完整的浏览器内核,包括 JavaScript 解析引擎.渲染引擎等.与普通浏览器最大的不同是,无头浏览器执行 ...

  3. centos7下安装无头浏览器(headless Chrome)

    selenium是当前流行的WEB自动化工具,它可以启动本地浏览器,访问网页,模拟点击操作等,在自动化测试和网络爬虫中非常有用. 一般开发环境都是有图形界面的,所以本地只要安装普通浏览器就行了,但是在 ...

  4. 无头浏览器 和 Puppeteer

    什么是无头浏览器 无头浏览器即headless browser,是一种没有界面的浏览器.它有浏览器该有的一切功能,除了界面.可以通过命令进行浏览器内的各种操作. 我们日常使用浏览器的步骤为:启动浏览器 ...

  5. 基于Python, Selenium, Phantomjs无头浏览器访问页面

    引言: 在自动化测试以及爬虫领域,无头浏览器的应用场景非常广泛,本文将梳理其中的若干概念和思路,并基于代码示例其中的若干使用技巧. 1. 无头浏览器 通常大家在在打开网页的工具就是浏览器,通过界面上输 ...

  6. 脚本应用实例_Selenium自动化中无头浏览器的应用

    由于在实际的测试环境下,使用图形界面的浏览器占用测试机资源过大效率低, 一般来说,在调试好脚本的基础上,抛开浏览器图形界面执行测试用例的. 现在可以使用的无头浏览器有很多,这里介绍一个使用方便的无头浏 ...

  7. [转载] 基于Python, Selenium, Phantomjs无头浏览器访问页面

    参考链接: Selenium Python技巧 引言: 在自动化测试以及爬虫领域,无头浏览器的应用场景非常广泛,本文将梳理其中的若干概念和思路,并基于代码示例其中的若干使用技巧. 1. 无头浏览器 通 ...

  8. JAVA网络爬虫(无头浏览器ChromeDriver)

    由于工作需要,开始做起了网络爬虫 以爬取小红书为例 创建chromeDriver // 创建浏览器public void createDriver() {// 开启浏览器后需要访问的地址String ...

  9. 无头浏览器(Headless Chrome)的使用

    一.Windows系统  1.安装Chrome   略  2.配置系统环境变量   将Chrome的安装目录(chrome.exe所在的目录)追加到系统变量的path变量中,比如我的Chrome安装在 ...

  10. linux 安装浏览器和驱动

    linux 安装浏览器和驱动 1.火狐浏览器及驱动-centos6 64 火狐浏览器-在centos6.10自带,而且浏览器版本为52版本 下载对应的火狐驱动,52版本-对应0.17版本-查看地址 查 ...

最新文章

  1. 数据库事务的隔离级别 (转)
  2. java mvc 批量插入_请教mysql spring mvc +mybatis中批量插入的问题?
  3. python中有关数据持久存储:pickle模块的基本使用
  4. jmeter-00 JMeter 运行过程
  5. Hystrix能解决的问题
  6. html中contentEditable属性
  7. Layui layui-soul-able 组件 表格列进行拖拽
  8. 条件随机场(CRF)小结
  9. C#+Winform用ReportViewer控件制作报表
  10. 安卓反编译smali代码注入第三方广告
  11. ajax读取txt出现乱码问题,ajax读取txt文本时乱码的解决方案
  12. seo与sem的关系和区别
  13. 如何删除电脑上卸载软件的残留文件,清理软件残留?
  14. poi word转html 根号,二次根式计算题-20210402033540.docx-原创力文档
  15. 自动气象站的主要功能是什么?
  16. 时代新宠儿——HEIF图像格式:节省50%空间
  17. Linux 搜过输入法通过命令切换主题
  18. 苹果第一次怼了华为 是因为抢跑5G的华为走上了苹果模式?
  19. android游戏翻译,百度翻译(Android)v2.5官方版最好的翻译官
  20. 静态资源(JS/CSS)存储在localStorage有什么缺点?为什么没有被广泛应用?

热门文章

  1. 《Go语言圣经》阅读笔记:第三章基础数据类型
  2. 华北水院c语言实验报告答案,C语言实验报告(三)
  3. ASP.NET使用WPS WORD转PDF
  4. php.ini gd_php开启GD库实现方法
  5. 2.6 数值分析: 追赶法
  6. 计算机键盘灯光怎么关闭,电脑关了键盘灯一直亮着怎么办
  7. USB接口定义详解(图)
  8. 软件安全测试之系统安全测试,软件安全测试报告模板.docx
  9. 微信公众号运营技巧总结
  10. 监狱数字化集成管理平台