自动化一些操作

下拉选择框

from selenium import webdriver
from time import sleep
# 导包
from selenium.webdriver.support.select import Select
driver = webdriver.Edge()
driver.get(r"D:\WORK\ww\web自动化_day01_课件+笔记+资料+代码\web自动化_day01_课件+笔记+资料+代码\02_其他资料\注册A.html")driver.maximize_window()driver.implicitly_wait(30)
# 匿名
# Select(element).select_by_index()
# Select(element).select_by_value()
# Select(element).select_by_visible_text()
# 实名
# select = Select(element) element 只能是select标签Select(driver.find_element_by_css_selector("#selectA")).select_by_value("bj")
sleep(2)
Select(driver.find_element_by_css_selector("#selectA")).select_by_index(1)
sleep(2)
Select(driver.find_element_by_css_selector("#selectA")).select_by_visible_text("A广州")
sleep(2)
#通过css
driver.find_element_by_css_selector("[value = 'cq']").click()
sleep(2)driver.quit()

弹出框

from selenium import webdriver
from time import sleepdriver = webdriver.Edge()
driver.get(r"D:\WORK\ww\web自动化_day01_课件+笔记+资料+代码\web自动化_day01_课件+笔记+资料+代码\02_其他资料\注册A.html")driver.find_element_by_css_selector("#alerta").click()
# 切换 处理
# driver.switch_to.alert.accept()
# driver.switch_to.alert.dismiss()
print(driver.switch_to.alert.text) # 这个之后还是得处理同意或取消 不然会报错
# 我被被点击啦!
driver.switch_to.alert.dismiss()
sleep(2)
driver.find_element_by_css_selector("#userA").send_keys("admin")
sleep(2)
driver.quit()

at = driver.switch_to.alert
# 切换 处理
# at.accept()
print(at.text) # 这个之后还是得处理同意或取消 不然会报错
# 我被被点击啦!
at.dismiss()

滚动条操作

一个水平滑动条 一个垂直滑动条

from selenium import webdriver
from time import sleepdriver = webdriver.Edge()
driver.get(r"D:\WORK\ww\web自动化_day01_课件+笔记+资料+代码\web自动化_day01_课件+笔记+资料+代码\02_其他资料\注册A.html")sleep(2)
js = "window.scrollTo(0,10000)"driver.execute_script(js)sleep(2)
driver.quit()

frame表单切换

 

首先在注册实例 切换到注册A

恢复默认页面 再切换到注册B

因为在注册A的源代码中是没有iframe的

from selenium import webdriver
from time import sleepdriver = webdriver.Edge()
driver.get(r"D:\WORK\ww\web自动化_day01_课件+笔记+资料+代码\web自动化_day01_课件+笔记+资料+代码\02_其他资料\注册实例.html")driver.find_element_by_css_selector("#user").send_keys("admin")
driver.find_element_by_css_selector("#password").send_keys("123456")
driver.find_element_by_css_selector(".tel").send_keys("123451432")
driver.find_element_by_css_selector("#email").send_keys("ww@qq.com")
# 通过id进行切换
driver.switch_to_frame("idframe1")
driver.find_element_by_css_selector("#userA").send_keys("admin")
driver.find_element_by_css_selector("#passwordA").send_keys("123456")
driver.find_element_by_css_selector(".telA").send_keys("123451432")
driver.find_element_by_css_selector("#emailA").send_keys("ww@qq.com")sleep(2)
# 切换到默认页面
driver.switch_to_default_content()
# 通过name进行切换
# driver.switch_to_frame("myframe2")
# 通过元素定位
driver.switch_to_frame(driver.find_element_by_css_selector("[name = 'myframe2']"))
driver.find_element_by_css_selector("#userB").send_keys("admin")
driver.find_element_by_css_selector("#passwordB").send_keys("123456")
driver.find_element_by_css_selector(".telB").send_keys("123451432")
driver.find_element_by_css_selector("#emailB").send_keys("ww@qq.com")sleep(2)
driver.quit()

多窗口切换

_blank 跳转到新窗口打开

所以需要切换窗口

from selenium import webdriver
from time import sleepdriver = webdriver.Edge()
driver.get(r"D:\WORK\ww\web自动化_day01_课件+笔记+资料+代码\web自动化_day01_课件+笔记+资料+代码\02_其他资料\注册实例.html")cur = driver.current_window_handle
print("当前窗口句柄", cur)driver.find_element_by_partial_link_text("注册A网页").click()
handles = driver.window_handles  # 获取所有的
# 当前窗口句柄 764CA7D94866BF4B7633F4F42D931775
# 764CA7D94866BF4B7633F4F42D931775
# 58B964F25D36A08C1004B1C0504248F4for handle in handles:print(handle)if handle != cur:# 切换driver.switch_to.window(handle)sleep(2)
driver.find_element_by_css_selector("#userA").send_keys("admin")
driver.find_element_by_css_selector("#passwordA").send_keys("123456")
driver.find_element_by_css_selector(".telA").send_keys("123451432")
driver.find_element_by_css_selector("#emailA").send_keys("ww@qq.com")sleep(2)
driver.quit()

窗口截图、验证码处理

 

from selenium import webdriver
from time import sleep
import time
driver = webdriver.Edge()
driver.get(r"D:\WORK\ww\web自动化_day01_课件+笔记+资料+代码\web自动化_day01_课件+笔记+资料+代码\02_其他资料\注册实例.html")driver.find_element_by_css_selector("#user").send_keys("admin")
driver.find_element_by_css_selector("#password").send_keys("123456")
driver.find_element_by_css_selector(".tel").send_keys("123451432")
driver.find_element_by_css_selector("#email").send_keys("ww@qq.com")sleep(2)
# 截图方式 时间戳
# driver.get_screenshot_as_file("./image/info_1.png")
driver.get_screenshot_as_file("./image/%s.png"%(time.strftime("%Y_%m_%d %H_%M_%S")))
# s.png s.jpg 都行
driver.quit()

 

 get_cookie(name)的底层为get_cookies()

 对于百度网址来说 cookie的键名BDUSS 对应的值 登录的时候抓包

from selenium import webdriver
from time import sleep
import timedriver = webdriver.Edge()
# 先请求网址
driver.get(r"https://www.baidu.com/")# 再设置cookie
driver.add_cookie({"name": "BDUSS","value": ""})sleep(2)
# 一定要刷新
driver.refresh()
sleep(2)
driver.quit()

cookies = driver.get_cookies()
for co in cookies:print("内容为", co)

cookies = driver.get_cookies()
for co in cookies:print(co.get('name'))

底层原理:

cookies = driver.get_cookies()
for co in cookies:if co.get('name') == 'BDUSS':print(co.get('value'))

弹出框 frame表单切换 多窗口切换

cookie

cookie就是能实现绕过验证码的功能 感觉就是不用用户自己重复登录

用户第一次通过输入用户名 密码 验证码给服务器进行登录

服务器验证通过生成cookie 一串字符串 将其标为验证成功 登录成功

响应时把这个cookie一并给浏览器 浏览器以后就可以自行设置

浏览器就自己设置好了并保存

然后后续当我们再次用这个浏览器访问这个网页时

浏览器网页自己将保存的cookie给服务器 然后就是自动登录了 显示登录成功的状态

 

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

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

相关文章

调试支付分回调下载平台证书

之前的原生代码放到webman里面,死活跑不通 没办法,只能用esayWeChat6.7 (自行下载) 它里面配置要用到平台证书 平台证书又要用到 composer require wechatpay/wechatpay 但是请求接口之前,你先要用到一个临时的平台…

配置atuin记录

https://atuin.sh/ 运行 curl --proto https --tlsv1.2 -LsSf https://setup.atuin.sh | sh报错 $ curl --proto https --tlsv1.2 -LsSf https://setup.atuin.sh | sh curl: (77) error setting certificate verify locations:CAfile: /etc/ssl/certs/ca-certificates.crtCAp…

同时安装JDK8和JDK17+环境变量默认无法修改

一、问题描述 当在windows系统中,同时安装JDK8和JDK17,环境变量默认就为jdk17,且从jdk17切换为jdk8后不生效,使用"java -version"命令查看后还是17版本。 解决方法 首先,产生的原因是,在安装…

2024最新源代码加密软件丨五款企业级软件评测

程序源代码作为企业的核心成果,一旦泄密将产生重大的损失,加密源代码至关重要。 可以防止他人未经授权使用、复制或修改源代码,保护开发者的劳动成果。 可以防止源代码被黑客或竞争对手获取和分析,减少漏洞被发现和利用的风险。…

通过MATLAB控制TI毫米波雷达的工作状态之实时数据采集

前言 前一章博主介绍了如何基于MATLAB的各种前面板组件结合MATLAB代码来发送CFG指令控制毫米波雷达的工作状态,这一章节博主将介绍如何基于这些组件结合MATLAB代码来实现TI毫米波雷达数据的实时采集。目前大部分TI毫米波雷达的数据采集均是仅可以采集一段数据又或者利用DAC10…

JAVA极简图书管理系统,初识springboot后端项目

前提条件: 具备基础的springboot 知识 Java基础 废话不多说! 创建项目 配置所需环境 将application.properties>application.yml 配置以下环境 数据库连接MySQL 自己创建的数据库名称为book_test server:port: 8080 spring:datasource:url:…

ShareSDK HarmonyOS NEXT集成指南

集成前准备 注册账号 使用MobSDK之前,需要先在MobTech官网注册开发者账号,并获取MobTech提供的AppKey和AppSecret,详情可以点击查看注册流程 ShareSDK流程图 集成配置 添加依赖 在Terminal窗口中,执行如下命令进行安装 ohpm …

【Python】MacBook M系列芯片Anaconda下载Pytorch,并开发一个简单的数字识别代码(附带踩坑记录)

文章目录 配置镜像源下载Pytorch验证使用Pytorch进行数字识别 配置镜像源 Anaconda下载完毕之后,有两种方式下载pytorch,一种是用页面可视化的方式去下载,另一种方式就是直接用命令行工具去下载。 但是由于默认的Anaconda走的是外网&#x…

杂学可以查看各个网络学习

WZMIAOMIAO (WuZhe) GitHub这个是一个各个深度学习的合集,有代码

主干网络篇 | YOLOv8改进之引入YOLOv10的主干网络 | 全网最新改进

前言:Hello大家好,我是小哥谈。YOLOv10是由清华大学研究人员利用Ultralytics Python软件包开发的,它通过改进模型架构并消除非极大值抑制(NMS)提供了一种新颖的实时目标检测方法。这些优化使得模型在保持先进性能的同时,降低了计算需求。与以往的YOLO版本不同,YOLOv10的…

突发!Runway的Gen-3向所有人开放,媲美Sora!

7月2日凌晨,著名生成式AI平台Runway在官网宣布,其文生视频模型Gen-3 Alpha向所有用户开放使用。 上周日Runway只向部分用户提供了Gen-3的使用权限,「AIGC开放社区」也为大家解读了10个非常有代表性的视频案例。(点击查看&#xf…

快速上手文心一言指令:解锁AI交互新体验

文心一言,作为百度研发的预训练语言模型,以其强大的语言理解和生成能力,为用户提供了丰富的交互体验。通过一系列精心设计的指令,用户可以轻松地与模型进行对话,获取信息、解决问题、启发灵感。本文将详细介绍如何快速…

晚上睡觉要不要关路由器?一语中的

前言 前几天小白去了一个朋友家,有朋友说:路由器不关机的话会影响睡眠吗? 这个影响睡眠嘛,确实是会的。毕竟一时冲浪一时爽,一直冲浪一直爽……刷剧刷抖音刷到根本停不下来,肯定影响睡眠。 所以晚上睡觉要…

昇思MindSpore学习笔记2-04 LLM原理和实践--文本解码原理--以MindNLP为例

摘要: 介绍了昇思MindSpore AI框架采用贪心搜索、集束搜索计算高概率词生成文本的方法、步骤,并为解决重复等问题所作的多种尝试。 这一节完全看不懂,猜测是如何用一定范围的词造句。 一、概念 自回归语言模型 文本序列概率分布 分解为每…

XML Schema 实例

XML Schema 实例 XML Schema 是一种用于定义 XML 文档结构和内容的语言。它提供了一种强大的方式来描述 XML 文档中允许的元素、属性和数据类型。在本篇文章中,我们将通过一系列实例来探讨 XML Schema 的基本概念和高级特性。 XML Schema 基础 XML Schema 是基于 XML 的,这…

多模态融合 + 慢病精准预测

多模态融合 慢病精准预测 慢病预测算法拆解子解法1:多模态数据集成子解法2:实时数据处理与更新子解法3:采用大型语言多模态模型(LLMMs)进行深度学习分析 慢病预测更多模态 论文:https://arxiv.org/pdf/2406…

自动化测试用例设计-软件测试基本概念解析

软件测试基本概念解析 1. 引言:软件测试的重要性​ 在当今这个数字化时代,软件质量直接关系到企业的竞争力和用户满意度。一个小小的bug可能造成重大经济损失,甚至影响品牌形象。因此,软件测试成为了确保软件可靠性的关键环节&a…

发电机保护屏组成都有哪些,如何选择

发电机保护屏组成都有哪些,如何选择 发电机是电力系统中最常用的一种电力设备。例如水力发电机,柴油发电机,风力发电机,火力发电等等。发电机保护是保证发电机安全、稳定运行的重要手段之一。对于一些小型机组的发电机&#xff0c…

探囊取物之多形式注册页面(基于BootStrap4)

基于BootStrap4的注册页面,支持手机验证码注册、账号密码注册 低配置云服务器,首次加载速度较慢,请耐心等候;演练页面可点击查看源码 预览页面:http://www.daelui.com/#/tigerlair/saas/preview/ly4gax38ub9j 演练页…

RTSP协议在视频监控系统中的典型应用、以及视频监控设备的rtsp地址格式介绍

目录 一、协议概述 1、定义 2、提交者 3、位置 二、主要特点 1、实时性 2、可扩展性 3、控制功能 4、回放支持 5、网络适应性 三、RTSP的工作原理 1、会话准备 2、会话建立 3、媒体流控制 4、会话终止 5、媒体数据传输 四、协议功能 1、双向性 2、带外协议 …