Selenium IED-控制已打开的Chrome浏览器

本文已收录于专栏
《自动化测试》

目录

  • 背景介绍
  • 优势特点
  • 操作步骤
  • 总结提升

背景介绍

  在我们进行自动化测试的过程中有时候会遇见一个很棘手的问题那就是登录的过程中需要图片验证码,图片验证码设计的初衷其实就是为了防自动化,防止一些人利用自动工具恶意攻击网站,而很不幸的是,我们所使用的一些自动化测试工具也包含在内。针对这个问题我们就可以使用浏览器复用的方式进行自动化的测试。我们可以让Selenium直接用带有缓存的浏览器,就像我们使用本机浏览器一样,去访问系统。常规系统,比如淘宝、携程,只要完成一次登陆验证,后续登陆是不会再有验证码的。通过Debug模式启动谷歌浏览器,就能达到这个效果。并且Debug模式的浏览器,还可以在自动化过程中实现复用浏览器来提高调试效率:

  1. 当运行 selenium 自动化时,要求已经登录才能才做。这个时候我们可以提前登录,运行脚本的时候复用已经打开的浏览器。
  2. 当调试了某个步骤很多的测试用例,前面N-1步已经成功,只需调试第N步。如果从头开始运行脚本,耗时过多,这时我们可以直接复用浏览器只操作第N步。

优势特点

  跳过原本需要自动输入账号密码以及图片验证码,把这一部分交给用户来手动操作,基于用户登录完毕之后的浏览器进行操作。这样当webdriver启动时将不再创建新的浏览器窗口 将运用已打开的浏览器的当前页面,对元素的进行操作 。

操作步骤

  1. 找到本地安装浏览器的路径,并设置为环境变量。以chrome浏览器为例。
    在这里插入图片描述
    在这里插入图片描述

  2. 在命令提示符中输入命令开始浏览器的远程控制模式,端口号可以随意指定一个空闲即可,后面的路径用来存储用户在浏览器上的信息。

chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\auction\driver\userData"

在这里插入图片描述

  1. chrome浏览器驱动下载地址:
      114之前的版本:https://chromedriver.chromium.org/downloads
      125之后的版本:https://googlechromelabs.github.io/chrome-for-testing/#canary,只有后面status是绿色对勾的才可以下载,驱动大版本一致就可以使用,不需版本号一模一样;下载所需版本只需点击对应的版本名称即可跳转到对应版本的下载位置。
    在这里插入图片描述

  2. Java代码连接已打开的浏览器进行操作,

            //指定chrome浏览器驱动的位置,由于edge驱动对象没有setExperimentalOption方法无法复用浏览器所以选择chrome驱动及其浏览器
            System.setProperty("webdriver.chrome.driver", "D:\\auction\\driver\\chromedriver.exe");
            ChromeOptions option = new ChromeOptions();
            option.setExperimentalOption("debuggerAddress", "127.0.0.1:9222");
            ChromeDriver driver = new ChromeDriver(option);
            driver.findElement(By.cssSelector(".vertical_center:nth-child(1) .el-input__inner")).click();
            driver.findElement(By.cssSelector(".vertical_center:nth-child(1) .el-input__inner")).clear();
            driver.findElement(By.cssSelector(".vertical_center:nth-child(1) .el-input__inner")).sendKeys(String.valueOf(finalPrice));

总结提升

  当在Selenium IDE中使用Chrome浏览器时,可以利用Chrome浏览器的WebDriver来实现浏览器的自动化控制。在Selenium IDE中选择Chrome作为浏览器驱动器后,可以直接复用已经打开的Chrome浏览器实例,而不是每次执行测试时都重新打开一个新的浏览器。通过复用Chrome浏览器,可以提高测试执行的效率和速度,同时也能保留浏览器中已登录的状态或其他必要操作,使得测试执行更加方便和可靠。这种功能对于需要多次执行测试用例或测试场景时尤为重要,能够节省大量时间和精力。


🎯 此文章对你有用的话记得留言+点赞+收藏哦🎯

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/721946.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

B-splines曲线的绘制(Matlab)

虽然在这个链接三次 Bspline(B样条曲线) NURBS曲线的绘制 matlab_三次b样条曲线的绘制-CSDN博客中我们介绍了NURBS曲线,然而有时候我们通过B-spline曲线也能够解决问题。B-spline曲线作为NURBS曲线的一种特例,这里给出均匀B-spline曲线的表达式&#xff…

oracle12c到19c adg搭建(三)oracle19c数据库软件安装

由于这里的19c是做备库所以我们只安装软件不用创建实例,实例由主库同步过来 解压软件到安装目录 注意19c得db要直接解压到19c得软件安装目录 [rooto12u19p software]# ls V982063-01.zip [rooto12u19p software]# ls -ll total 2987996 -rw-r--r-- 1 root ro…

阿里云服务器无法远程登录连接:操作系统禁用了密码登录方式,会导致使用了正确的用户名和密码仍无法登录

阿里云服务器无法远程登录连接:操作系统禁用了密码登录方式,会导致使用了正确的用户名和密码仍无法登录 报错信息报错原因解决办法 报错信息 Workbench密码登录 登录失败 操作系统禁用了密码登录方式,会导致使用了正确的用户名和密码仍无法登…

充电学习—7、BC1.2 PD协议

BC1.2(battery charging)充电端口识别机制: SDP、CDP、DCP 1、VBUS detect:vbus检测 PD(portable device,便携式设备)中有个检测VBUS是否有效的电路,电路有个参考值,高…

Python-自动化运维-安装初始化

Python-自动化运维-安装初始化 第一部分-环境安装 第一部分-环境安装 专业版白嫖地址:https://signup.live.com/signup python环境(windows) pycharm环境(windows) 虚拟机(ubantu/contos) 开…

电脑丢失dll文件一键修复的方法有哪些?分析dll文件修复的多种策略

我们经常会遇到各种各样的问题,其中之一就是DLL文件的丢失。DLL文件(动态链接库)是操作系统和应用程序正常运行所必需的文件,当这些文件丢失或损坏时,可能会导致软件无法正常启动,甚至影响系统的稳定性。对…

深入探究RTOS的任务调度

阅读引言: 此文将会从一个工程文件, 一步一步的分析RTOS的任务调度实现, 这里选用FreeRTOS分析, 别的也差不多的, 可能在细节上有少许不一样。 目录 1, 常见嵌入式实时操作系统 2, 任务调度的…

鸿蒙原生应用元服务开发-位置服务申请权限

申请位置权限开发指导 场景概述 应用在使用位置服务系统能力前,需要检查是否已经获取用户授权访问设备位置信息。如未获得授权,可以向用户申请需要的位置权限。 系统提供的定位权限有: ohos.permission.LOCATION:用于获取精准位置…

Docker配置阿里云加速器(2续)

默认情况下镜像是从docker hub下载,由于docker hub服务器在国外,由于网络原因镜像下载速度较慢,一般会配置镜像加速进行下载 国内镜像加速器有阿里云、网易云、中科大等,本章配置阿里云镜像加速器,速度较快 镜像加速源…

miniconda安装教程以及pip换源【Windows版本】

Anaconda包含内容较多,这边采用miniconda进行安装演示。 下载安装包 官网链接:https://docs.anaconda.com/miniconda/ 蓝奏云加速链接:https://wwt.lanzoue.com/i6ts3225vuef 开始安装 配置conda 在Windows开始菜单中,找到刚安…

监控局域网电脑屏幕的办法,最简单的三种方法,好用!

在现代企业管理和家庭教育环境中,对局域网内电脑屏幕进行有效监控成为了保障信息安全、提升工作效率和监督行为规范的重要手段。 监控局域网电脑屏幕不仅可以帮助管理者了解员工的工作状态,确保资源的合理使用,还能在一定程度上预防潜在的网…

storelibtest工具使用

1.介绍 服务器上使用broadcom raid卡,不可避免要使用到storelib代码。这一部分是由ami完整提供或者博通提供代码自行编译集成到ast2500/ast2600平台BMC中. 针对一般性的开发,依托ami代码,然后集成开发功能。但是如果是新功能导入而ami还未导…

【css】如何修改input选中历史选项后,自动填充的蓝色背景色

自动填充前: 自动填充后: 解决办法 方法一:设置背景透明 改变input自动填充背景颜色 // 通过拉长过渡时间,和延迟过渡开始时间,掩盖input自动填充背景颜色input:-internal-autofill-previewed,input:-internal-aut…

基于SpringBoot+Vue企业会议室预定管理系统设计和实现

基于SpringBootVue企业会议室预定管理系统设计和实现 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统 …

一招教你房间内灰尘多怎么处理?除粉尘好用的空气净化器分享

在你吸尘、扫地、擦家具的时候,你或许会奇怪,为什么灰尘每天擦,每天有?即使门窗关得好好的,过几天还是会落上一层薄薄的灰。它们究竟是什么?对我们的健康又有什么影响呢?我们每天生活在房屋中&a…

模型部署onnx入门

一、定义 1.定义 2. 环境安装 3. 案例 4. 可视化界面 5. 参考网址 6. 推理引擎 onnx Runtime 进行单张图片推理,本地部署 7. 推理引擎onnx Runtime 进行单张图片推理,调用摄像头获取画面 8. 推理引擎onnx Runtime 进行图片推理,调用摄像头获…

Spring Cloud 专题-配置篇(2)

关注微信公众号:IT技术馆 Spring Cloud 是一个基于 Spring Boot 构建的云应用开发工具集,它为开发人员提供了在分布式系统中快速实现常见模式(如配置管理、服务发现、断路器等)的能力。下面是一个简化的示例,展示如何…

结构思考力:让你的思维更有条理

在这个信息爆炸的时代,如何让自己的思维更有条理,更高效地沟通显得尤为重要。最近读了《结构思考力》一书。今天,我想和大家分享一下读后感,从以下几个方面展开:1. 什么是结构思考力及其重要性;2. 为什么要…

JavaScript日期对象、DOM节点操作(查找、增加、克隆、删除)

目录 1. 日期对象2. DOM节点操作2.1 查找节点2.2 增加节点2.3 克隆节点2.4 删除节点 1. 日期对象 实例化日期对象: 获取当前时间: new Date()获取指定时间: new Date(2023-12-1 17:12:08) 日期对象方法: 方法作用说明getFullYear()获得年份获取四位年份getMonth…

设计可持续数据中心的基本要素

在当今的商业环境中,数据处理中心(DPC)的重要性日益凸显,它们为海量数据提供稳定的存储、处理和传输服务。随着数据处理中心重要性的不断提升,构建一个具有弹性和可靠性的基础设施变得至关重要。本文将深入探讨构建可持…