Linux无头浏览器的自动化测试实现

这篇具有很好参考价值的文章主要介绍了Linux无头浏览器的自动化测试实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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.rpm

rpm -ivh  google-chrome-stable_current_x86_64.rpm 

2、chromedriver配置

  • chromedriver下载地址: https://registry.npmmirror.com/binary.html?path=chromedriver/
 # 查看chrome版本

google-chrome --version

# 根据版本下载对应chromedriver

wget 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上需要禁用sandbox
 chrome_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 time

import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By


class TestSahi:
    def setup_class(self):
        self.chrome_options  = webdriver.ChromeOptions()
        # 设置driver以无头浏览的模式运行
        self.chrome_options.add_argument('-headless')
        # Linux上需要禁用sandbox
        self.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

执行结束后,当前位置下生成对应截图文章来源地址https://www.toymoban.com/news/detail-606135.html

到了这里,关于Linux无头浏览器的自动化测试实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Selenium浏览器自动化怎么上传文件

    Selenium 封装了现成的文件上传操作。但是随着现代前端框架的发展,文件上传的方式越来越多样。而有一些文件上传的控件,要做自动化控制会更复杂一些,这篇文章主要讨论在复杂情况下,如何通过自动化完成文件上传。 如果页面需要文件上传,那么在大多数情况下,都能

    2024年02月08日
    浏览(48)
  • WebDriver+Selenium实现浏览器自动化

    Selenium是一款可以自动化操作浏览器的开源项目,最初的目的是浏览器功能的自动化测试,但是随着项目的发展,人们根据它的特性也用来做一些更多的有意思的功能而不仅仅是UI的自动化测试工具。就像Selenium官方网站上描述的那样,Selenium可以自动化操纵浏览器。完了!你

    2024年02月03日
    浏览(51)
  • Selenium浏览器自动化测试框架详解

    目录   selenium简介 介绍 功能 优势 基本使用 获取单节点 获取多节点 节点交互 动作链# 执行JavaScript代码 获取节点信息 切换frame 延时等待 前进和后退 cookies 选项卡管理 异常处理 ​编辑 选项卡切换 无头浏览器 总结: Selenium [1] 是一个用于Web应用程序测试的工具。Selenium测试

    2024年02月08日
    浏览(51)
  • 自动化测试——selenium多浏览器处理

    用户使用的浏览器(frefox,chrome,IE 等) web应用应该能在任何浏览器上正常的工作,这样能吸引更多的用户来使用。 是跨不同浏览器组合验证网站或web应用程序功能的过程 是 兼容性测试的一个分支,用于保持功能和质量的一致性 适用于面向客户的网站和组织内部使用的站点 py

    2024年02月11日
    浏览(57)
  • 解决pycharm调试web自动化浏览器自动退出问题

    一、问题描述 在pycharm中调试自动打开浏览器时发现打开后会自动关闭,但是并没有关闭的代码 二、问题解决 在网上百度了很多很多方法都没有效果,后来看到一篇文章可能是selenium版本太高导致,我查看了当时安装

    2024年02月11日
    浏览(43)
  • Selenium浏览器自动化测试框架简单介绍

    目录 selenium简介 介绍 功能 优势 基本使用 获取单节点 获取多节点 节点交互 动作链 执行JavaScript代码 获取节点信息 切换frame 延时等待 前进和后退 cookies 选项卡管理 异常处理 选项卡切换 无头浏览器 介绍 Selenium [1]  是一个用于Web应用程序测试的工具。Selenium测试直接运行在

    2024年02月13日
    浏览(41)
  • python自动化测试selenium浏览器操作

    2024年02月16日
    浏览(75)
  • Selenium教程:自动化浏览器测试工具

    Selenium是一款用于自动化浏览器测试的工具,它提供了一系列的API和功能,使得开发人员可以编写脚本来模拟用户在浏览器中的行为。无论是在Web应用程序的功能测试、性能测试还是数据抓取方面,Selenium都是一个强大且广泛使用的工具。 在开始使用Selenium之前,您需要进行安

    2024年02月07日
    浏览(82)
  • selenium浏览器自动化测试【基于java】

    Selenium 是一个用于Web应用程序的自动化测试工具。它直接运行在浏览器中,可以模拟用户在浏览器上面的行为操作。 chrome.exe 默认安装位置:C:Program FilesGoogleChromeApplicationchrome.exe 结果我的在:C:Users91073AppDataLocalGoogleChromeApplicationchrome.exe 。。。为啥? 下载驱动 最新

    2024年02月04日
    浏览(52)
  • Web自动化Selenium-浏览器定制启动参数

    在自动化测试过程中,为了达到某种效果,我们需要在初始化浏览器的时候做一些特殊的设置,如“阻止图片加载”“阻止JavaScript执行”等。这些需要Selenium的浏览器options(如ChromeOptions、FirefoxOptions)来帮助我们完成。 本节我们再来看一些options的常用属性及方法。 ●optio

    2024年02月14日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包