自动化测试如何解决chrome自动更新问题
问题
调试好的自动化测试脚本,有时候总是在第一天或过几天就不好使了。产品并未进行功能逻辑,ui修改,一切还和调试自动化脚本的时候保持一致。运行自动化测试脚本时,控制台总是会在driver = webdriver.Chrome()这一行报错。
问题定位
在看到控制台错误时并没有立马想到是chromedriver版本和谷歌浏览器版本不一致导致。但是通过各种途径的资料搜集等等…最终发现是chromedriver版本和谷歌浏览器版本不一致导致调试好的自动化测试脚本不执行。
问题解决
第一次遇到这个问题的时候,查找了许多资料,都说卸载谷歌重新装一个旧版本的。这个方法解决了。重新装chrome后,要关闭谷歌的自动更新程序,否则chrome更新后,还是会导致这个问题。本来这样做就彻底解决了,但是问题再一次复现了。查看自动更新服务都处于禁用状态,但是谷歌浏览器还是自动更新了。
第二次尝试解决这个问题,终于找到了一个不需要卸载的方案。如下
1. pip install webdriver-manager #cmd运行该行命令
# 注:我是使用 pip3 install webdriver-manager进行安装
2.# pip show selenium 查看selenium版本 以下代码需在编辑器进行编写selenium 3 from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
selenium 4
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
注: 使用这个webdriver-manager会自动更新浏览器驱动,但是相对之前打开浏览器会变慢,但是比起需要卸载谷歌重装旧版本,通过几行程序能解决,还是更好的。
相关文章:
自动化测试如何解决chrome自动更新问题
问题 调试好的自动化测试脚本,有时候总是在第一天或过几天就不好使了。产品并未进行功能逻辑,ui修改,一切还和调试自动化脚本的时候保持一致。运行自动化测试脚本时,控制台总是会在driver webdriver.Chrome()这一行报错。 问题…...
闲鱼卖货:新手容易踩坑的7个地方。赶紧看看有没有中招?
科思创业汇 大家好,这里是科思创业汇,一个轻资产创业孵化平台。赚钱的方式有很多种,我希望在科思创业汇能够给你带来最快乐的那一种! 这是我以前的一个学生收到的第一个非法通知。他告诉我,他当时很害怕,…...
PowerShell 获取某目录下所有的文件、文件夹,同时对获取到的文件路径字符串进行替换处理
PowerShell 获取某目录下所有的文件、文件夹,同时对获取到的文件路径字符串进行替换处理 前言: 为了将Windows系统下的Java编译文件与linux服务器上的文件进行比较,故进行此文件路径的获取及路径处理。 在只有文件路径 而没有实际文件的情况下…...
JUC并发编程之线程锁(一)
目录 1.ReentrantLock(互斥锁) 2.ReentRantReaderWriterLock(互斥读写锁) 3.StampedLock(无障碍锁) 4.Condition(自定义锁) 5.LockSupport 问题引出: 由于传统的线程控制需要用到同步机制Sy…...
Android AlertDialog标题居中
网上很多做法都是使用setCustomTitle方法实现的,我偏不,因为我已经找到了标题的textView了: 在show了之后可以拿到标题(注意一定是show之后才能拿得到,create之后拿也是空的): TextView title…...
k8s界面化平台dashboard、kubesphere、Rancher对比
k8s集群管理dashboard有很多,比如kuboard、官方发dashboard、kubesphere、Rancher等等。 Dashboard、KubeSphere 和 Rancher 都是流行的 Kubernetes 管理和操作界面。它们都提供了图形化的用户界面,以简化对 Kubernetes 集群的管理和监控。每个工具都有其…...
【字符串左旋】
字符串左旋 1.题目要求 实现一个函数,可以左旋字符串中的k个字符。 例如: ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 2.解法: 设计循环使其可以旋1次,然后让他执行n次是一个最简单的思路: 函数实现…...
Docker Dirtypipe(CVE-2022-0847)漏洞复现与分析容器逃逸
安装环境 ./metarget cnv install cve-2022-0847 --verbose 原理 同脏牛,通过写只读内存,对映射的内存做篡改 EXP docker run --rm -it -v $(pwd):/exp --cap-addCAP_DAC_READ_SEARCH ubuntu如果提示 Unknown capability to add: "CAP_CAP_DAC_RE…...
python接口自动化测试框架2.0,让你像Postman一样编写测试用例,支持多环境切换、多业务依赖、数据库断言等
项目介绍 接口自动化测试项目2.0 软件架构 本框架主要是基于 Python unittest ddt HTMLTestRunner log excel mysql 企业微信通知 Jenkins 实现的接口自动化框架。 前言 公司突然要求你做自动化,但是没有代码基础不知道怎么做?或者有自动化…...
Vue.js2+Cesium1.103.0 九、淹没分析效果
Vue.js2Cesium1.103.0 九、淹没分析效果 Demo <template><divid"cesium-container"style"width: 100%; height: 100%;"><spanid"button"style"position: absolute; right: 50px; top: 50px; z-index: 999; font-size: 24px…...
SpringBoot案例-部门管理-新增
根据页面原型,明确需求 页面原型 需求 阅读接口文档 接口文档链接如下: 【腾讯文档】SpringBoot案例所需文档 https://docs.qq.com/doc/DUkRiTWVaUmFVck9N 思路分析 前端在输入要新增的部门名称后,会以JSON格式将数据传入至后端…...
微信小程序中背景图片如何占满整个屏幕,拉伸
不变形 1. 在页面的wxss文件中,设置背景图片的样式: page{background-image: url(图片路径);background-size: 100% 100%;background-repeat: no-repeat; }2. 在页面的json文件中,设置背景图片的样式: {"backgroundTextStyl…...
Java并发编程(四)线程同步 中 [AQS/Lock]
概述 Java中可以通过加锁,来保证多个线程访问某一个公共资源时,资源的访问安全性。Java提出了两种方式来加锁 第一种是我们上文提到的通过关键字synchronized加锁,synchronized底层托管给JVM执行的,并且在java 1.6 以后做了很多…...
PyTorch深度学习环境安装(Anaconda、CUDA、cuDNN)及关联PyCharm
1. 关系讲解 Tytorch:Python机器学习库,基于Torch,用于自然语言处理等应用程序 Anaconda:是默认的python包和环境管理工具,安装了anaconda,就默认安装了conda CUDA:CUDA是一种由显卡厂商NVIDI…...
Active Directory安全和风险状况管理
风险评估和管理 风险评估和管理是主动安全性和合规性管理不可或缺的一部分。 发现关键基础设施组件中的风险行为和配置对于阻止网络入侵和预防网络攻击至关重要。帐户泄露和配置错误漏洞是用于破坏网络的常见技术。当评估、监控和降低 Active Directory 基础架构的风险时&…...
学术论文GPT源码解读:从chatpaper、chatwithpaper到gpt_academic
前言 之前7月中旬,我曾在微博上说准备做“20个LLM大型项目的源码解读” 针对这个事,目前的最新情况是 已经做了的:LLaMA、Alpaca、ChatGLM-6B、deepspeedchat、transformer、langchain、langchain-chatglm知识库准备做的:chatpa…...
单链表(C语言版)
单链表:理解、实现与应用 单链表(Singly Linked List)是一种常见的数据结构,用于存储一系列具有相同类型的元素,并通过节点之间的链接建立起它们的关系。每个节点包含一个数据元素和一个指向下一个节点的指针。相比于…...
初学vue3时应该注意的几个问题
初学vue3时应该注意的几个问题 声明响应式 响应式数据的声明在vue2的时候很简单,在data中声明就行了。但现在可以使用多个方式。 reactive用于声明Object, Array, Map, Set; ref用于声明String, Number, Boolean 使用reactive来声明基础数据类型(Str…...
基于Selenium技术方案的爬虫入门实践
通过爬虫技术抓取网页,动态加载的数据或包含 JavaScript 的页面,需要使用一些特殊的技术和工具。以下是一些常用的技术方法: 使用浏览器模拟器:使用像 Selenium、PhantomJS 或其他类似工具可以模拟一个完整的浏览器环境࿰…...
【C++入门到精通】C++入门 —— vector (STL)
阅读导航 前言一、vector简介1. 概念2. 特点 二、vector的使用1.vector 构造函数2. vector 空间增长问题⭕resize 和 reserve 函数 3. vector 增删查改⭕operator[] 函数 三、迭代器失效温馨提示 前言 前面我们讲了C语言的基础知识,也了解了一些数据结构࿰…...
中文医疗对话数据集:79万条专业数据如何重塑医疗AI的未来
中文医疗对话数据集:79万条专业数据如何重塑医疗AI的未来 【免费下载链接】Chinese-medical-dialogue-data Chinese medical dialogue data 中文医疗对话数据集 项目地址: https://gitcode.com/gh_mirrors/ch/Chinese-medical-dialogue-data 在医疗人工智能技…...
别再手动调参了!用Auto Lidar2Cam Calibration搞定相机雷达标定(附ROS Melodic + Gazebo9避坑指南)
自动驾驶开发者的福音:Auto Lidar2Cam Calibration全流程实战解析 当激光雷达点云与相机图像无法完美对齐时,整个感知系统就像近视眼没戴眼镜——模糊不清。传统手动标定不仅耗时费力,结果还常常差强人意。Auto Lidar2Cam Calibration的出现&…...
架构实战:基于 GB28181/RTSP 多协议兼容的 AI 视频中台——支持源码交付与边缘异构部署
1. 引言:安防集成开发中的“协议围城” 作为一名深耕安防领域十余年的架构师,我见过太多集成商陷于协议对接的泥潭。在面对海康、大华、宇视等跨品牌设备接入时,开发者往往需要处理复杂的 GB/T28181 级联、不稳定的 RTSP 轮询以及异构硬件下…...
LAMMPS建模避坑指南:如何用EMC和SMILES字符串搞定复杂聚合物力场参数
LAMMPS建模避坑指南:如何用EMC和SMILES字符串搞定复杂聚合物力场参数 在分子动力学模拟领域,LAMMPS作为一款强大的开源工具,被广泛应用于各类复杂体系的建模与计算。然而,当涉及到聚合物、有机分子等复杂体系时,力场参…...
GPT-SoVITS终极语音克隆指南:5分钟掌握零样本AI语音合成技术
GPT-SoVITS终极语音克隆指南:5分钟掌握零样本AI语音合成技术 【免费下载链接】GPT-SoVITS 1 min voice data can also be used to train a good TTS model! (few shot voice cloning) 项目地址: https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS 你是否曾…...
深度优化Windows Shell扩展:ExplorerPatcher开始菜单延迟修复的5种高效方案
深度优化Windows Shell扩展:ExplorerPatcher开始菜单延迟修复的5种高效方案 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher Window…...
ComfyUI-Impact-Pack V8实战解析:模块化架构如何重塑AI图像精细化处理工作流
ComfyUI-Impact-Pack V8实战解析:模块化架构如何重塑AI图像精细化处理工作流 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more.…...
从“零拷贝”到“写合并”:深入CUDA锁页内存的三种高级用法(附代码避坑)
从“零拷贝”到“写合并”:深入CUDA锁页内存的三种高级用法(附代码避坑) 在GPU加速计算的世界里,内存管理往往是性能优化的关键战场。当开发者已经掌握了CUDA基础内存操作后,锁页内存(Page-Locked Memory&a…...
数据安全与加密方案
系列导读:本篇将深入讲解数据安全与加密的核心方案与最佳实践。 文章目录目录一、数据安全概述1.1 数据安全三要素1.2 数据分类二、加密算法2.1 对称加密2.2 非对称加密2.3 哈希算法三、数据脱敏3.1 脱敏规则3.2 脱敏实现3.3 注解脱敏四、密钥管理4.1 密钥管理方案4…...
Android SQLite磁盘I/O异常深度解析:从SQLITE_IOERR_SHMSIZE到WorkManager的优化实践
1. SQLITE_IOERR_SHMSIZE错误解析 遇到android.database.sqlite.SQLiteDiskIOException: disk I/O error (code 4874)报错时,很多开发者会一头雾水。这个错误其实源于SQLite的WAL(Write-Ahead Logging)模式在操作共享内存文件时的异常。WAL模…...
