【Selenium】UI自动化实践——输入验证码登录

文章目录

  • 实战题目
  • 解题方案

实战题目

使用python+selenium实现输入验证码的UI自动化。登录页面如图:
在这里插入图片描述

解题方案

验证码登录需要导入相关模块和库,本文使用的是opencv和ddddocr模块组合,导入方式采用pip3 install opencv-pythonpip3 install ddddocr,成功安装即可。

代码:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from common import do_time
import os
from time import sleep
import ddddocr# 设置浏览器
option = webdriver.ChromeOptions()
option.add_experimental_option("prefs", {"download.prompt_for_download": False,"download.directory_upgrade": True,"safebrowsing.enabled": True,"credentials_enable_service": False,"profile.password_manager_enabled": False
})  #初始化Chrome的时候,不弹出密码框
option.add_experimental_option('excludeSwitches', ['enable-automation'])  #设置防止被检测为selenium
option.binary_location = r'D:\Software\Google\Chrome\Application\chrome.exe'
# 启动Chrome浏览器
driver = webdriver.Chrome(service=Service("../config/chromedriver.exe"), options=option)
driver.maximize_window()
driver.implicitly_wait(10)# 打开登录网页
driver.get("https://sso-iot-uat.dianliantech.com/oauth/login")
sleep(3)
# 输入用户名和密码
driver.find_element(By.XPATH, '//*[@id="username"]').send_keys('username')
driver.find_element(By.XPATH, '//*[@id="password"]').send_keys('password')# 验证码处理
# 找到验证码并将验证码以截图的方式保存
vcode_ele = driver.find_element('xpath', '//*[@id="verifyImg"]')
vcode_path = r'D:\Learn\pycharmProject\IOT\vcode\vcode.png'     #定义保存路径
vcode_ele.screenshot(vcode_path)   #截图保存至指定路径下# 调用ddddocr框架,读取验证码,并填入输入框
ocr = ddddocr.DdddOcr()
with open(vcode_path, 'rb') as f:img_bytes = f.read()
vcode = ocr.classification(img_bytes)
driver.find_element(By.XPATH, '//*[@id="verifyCode"]').send_keys(vcode)# 点击登录按钮
driver.find_element(By.XPATH, '//*[@id="loginSubmit"]').click()

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文阅读】CiteTracker: Correlating Image and Text for Visual Tracking

paper:NorahGreen/CiteTracker: [ICCV23] CiteTracker: Correlating Image and Text for Visual Tracking (github.com) code:NorahGreen/CiteTracker: [ICCV23] CiteTracker: Correlating Image and Text for Visual Tracking (github.com) 简介 现有…

Pr:媒体浏览器

Pr菜单:窗口/媒体浏览器 Window/Media Browser 快捷键:Shift 8 媒体浏览器 Media Browser是一个可以浏览、预览和导入不同类型媒体的面板。 在 Pr 中导入素材遇到问题时,可尝试使用媒体浏览器。 媒体浏览器是导入各类媒体的最佳选择&#xf…

C8T6超绝模块--LED

C8T6超绝模块–LED 大纲 怎样点亮LED结构体分析代码流程 具体案例 怎样点亮LED 首先不同的芯片的接法不一样,需要自己查看自己的芯片的原理图,我使用的是C8T6,使用的PC13接入的LED 注意看:怎么才能使LED灯亮呢? …

硬件工程师笔试面试——上拉电阻、下拉电阻

目录 1.3、上拉电阻 原理图 1.3.1、定义 1.3.2、作用 1.3.3、工作原理 1.3.4、选择上拉电阻的值 1.3.5、应用场景 1.3.6、与下拉电阻的区别 1.3.7、设计考虑 1.3.8电路设计中的注意事项 1.3.9、与ESD保护的结合 1.3.10、实际应用 1.3.11、上拉电阻在不同电压等级的…

【前端学习】AntV G6-07 深入图形与图形分组、自定义节点、节点动画(上、中)

课程链接 AntV G6:深入图形与图形分组、自定义节点、节点动画(上)_哔哩哔哩_bilibili AntV G6:深入图形与图形分组、自定义节点、节点动画(中)_哔哩哔哩_bilibili 图形分组 Group | G6 (antgroup.com) 自…

K8S 发布应用

前言 昨儿个用 unbuntu20.04 又装了一次K8S 用的 kubeadm containerd Cilium (CNI) 又重新撸了一遍 这里只记录 应用发布的笔记 正文 #创建deployment kubectl create deployment nginx --imagenginx #我这边大约30秒后显示为 ready kubectl get deployments kubectl desc…

MySQL - 基础 - 概述

基础 - 概述 一、相关概念 1、数据库(DB) 存储数据的仓库,数据是有组织的进行存储 2、数据库管理系统(DBMS) 操纵和管理数据库的大型软件 3、SQL 操作关系型数据库的编程语言,定义了一套操作关系型数据库…

【设计模式】工厂模式与策略模式的区别

目录 1、工厂模式 2、策略模式 3、区别 3.1、工厂模式 1. 目的: 2. 使用场景: 3. 实现方式: 4. 示例: 3.2、策略模式 1. 目的: 2. 使用场景: 3. 实现方式: 4. 示例: 工…

权威解读|2024固定网国内数据传送业务办理指南

一、固定网国内数据传送业务是什么? 固定网国内数据传送业务,是指互联网数据传送业务以外的,在固定网中以有线方式提供的国内端到端数据传送业务。主要包括基于IP承载网、ATM网、X.25分组交换网、DDN网、帧中继网络的数据传送业务等。 根据…

数据库管理-第238期 23ai:全球分布式数据库-架构与组件(20240904)

数据库管理238期 2024-09-04 数据库管理-第238期 23ai:全球分布式数据库-架构与组件(20240904)1 架构图2 分片数据库与分片3 Shard Catalog4 Shard Director5 Global Service6 管理界面总结 数据库管理-第238期 23ai:全球分布式数…

地理围栏,打造智能生活新边界

随着智能手机和其他移动设备的普及,用户对基于位置获取个性化服务的需求大幅增加,例如用户进入商圈范围并停留操作一段时间后,智能触发向用户推送该商圈吃、喝、玩、乐的优惠活动消息;又如当用户到达非常驻地的机场时触发围栏&…

工业网关在汽车智能工厂中的应用-天拓四方

工业网关是工业物联网(IIoT)的关键组成部分,它充当了工业现场设备与云端或企业级系统之间的桥梁。在智能工厂中,工业网关的应用至关重要,它确保了生产线的顺畅运行,并通过数据的透明化,提升了生…

《高等代数》范德蒙德行列式的应用

说明:此文章用于本人复习巩固,如果也能帮助到大家那就更加有意义了。 注:范德蒙德行列式的简单应用及其变形。 范德蒙德行列式的计算公式: 注:(1)用大下标减去小下标。 (2&#xf…

QFile打开文件的两种方式

一、UI界面设置两个按键&#xff0c;并直接转到槽函数 二、两种代码展示 #include <QFile> #include <QDebug>//此两种方式中调用函数&#xff0c;应包含的头文件void Widget::on_btnReadFile01_clicked()//第一种打开方式 {//1. 打开文件QFile file;file.setFile…

密钥加密机的定义与功能

密钥加密机是信息安全领域中的核心设备&#xff0c;通过密码学原理&#xff0c;利用加密算法和密钥管理技术&#xff0c;对通信内容进行加密保护&#xff0c;确保数据在传输过程中的机密性、完整性和真实性。以下是对密钥加密机的详细阐述&#xff1a; 一、定义与功能 定义&…

集成电路学习:什么是OLED有机发光二极管

一、OLED&#xff1a;有机发光二极管 OLED&#xff0c;全称有机发光二极管&#xff08;Organic Light-Emitting Diode&#xff09;&#xff0c;是一种电流型的有机发光器件。以下是关于OLED的详细介绍&#xff1a; 二、OLED的定义与原理 OLED是基于有机半导体材料和发光材料在…

【游戏安全】CheatEngine基础使用——如何对不同类型的数值进行搜索?如何破解数值加密找到想修改的数值?

游戏安全 不同数值类型的搜索破解简单数值加密 不同数值类型的搜索 可以在游戏中看到很精确的物品数量&#xff0c;但是在CE中却什么都扫不到。 这是因为他的数值类型可能并不是四字节的&#xff0c;在游戏中这个数值的机制是一个慢慢增长的数值&#xff0c;所以他很有可能是…

信息安全威胁

关注这个证书的其他相关笔记&#xff1a;NISP 一级 —— 考证笔记合集-CSDN博客 0x01&#xff1a;我国面临的信息安全威胁 从受威胁的对象来看&#xff0c;可以将我国面临的信息安全威胁分为三类&#xff1a;国家威胁、组织威胁和个人威胁。 来自国家的威胁&#xff1a; 恐怖组…

Hive服务部署及Datagrip工具使用

目录 Hive服务部署 Hiveserver2服务 1&#xff09;用户说明 2&#xff09;Hiveserver2部署 &#xff08;1&#xff09;Hadoop端配置 &#xff08;2&#xff09;Hive端配置 3&#xff09;测试 &#xff08;1&#xff09;启动Hiveserver2 &#xff08;2&#xff09;使用命…

计算机工具软件安装攻略:Visual Studio Code下载、安装和使用

Visual Studio Code下载、安装和使用 1 Visual Studio Code简介 Visual Studio Code通常简称为VS Code&#xff0c;是一款由微软开发的免费、开源的轻量级代码编辑器。它在开发者社区中非常受欢迎&#xff0c;具有强大的功能和扩展性&#xff0c;适用于多种编程语言和开发场景…