自动化一些操作

news2024/11/19 4:43:49

下拉选择框

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 sleep

driver = 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 sleep

driver = 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 sleep

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")
# 通过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 sleep

driver = 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
# 58B964F25D36A08C1004B1C0504248F4

for 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 time

driver = 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.coloradmin.cn/o/1887856.html

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

相关文章

配置windows环境下独立浏览器爬虫方案【不依赖系统环境与chrome】

引言 由于部署浏览器爬虫的机器浏览器版本不同,同时也不想因为部署了爬虫导致影响系统浏览器数据,以及避免爬虫过程中遇到的chrome与webdriver版本冲突。我决定将特定版本的chrome浏览器与webdriver下载到项目目录内,同时chrome_driver在初始…

【车载开发系列】SPI总线通信技术

【车载开发系列】SPI总线通信技术 【车载开发系列】SPI总线通信技术 【车载开发系列】SPI总线通信技术一. 什么是SPI二. 应用范围三. 协议特点1)传输速率2)主要功能3)拓扑结构4)接口配置 四. SPI总线原理五. 信号列表六. SPI传输时…

攻防世界-WEB-catcat-new

前言 .................. 开干 正文 信息收集 有意思 估计是权限不够导致无法访问 我们点击几只小猫看看有什么东西 好的,?File 试试看是否存在任意文件读取 思路 成功,接下来我们尝试获取历史记录 这里补充一下知识点 /proc/self proc是一个伪文件系统,它提…

PDF文档如何统计字数,统计PDF文档字数的方法有哪些?

在平时使用pdf阅读或者是处理文档的时候,常常需要统计文档的字数。pdf在查看文字时其实很简单。 PDF文档是一种常见的电子文档格式,如果需要对PDF文档中的字数进行统计,可以使用以下方法: Adobe Acrobat DC:Adobe Ac…

Linux 防火墙开放端口

启动防火墙服务:systemctl start firewalld 查看防火墙开放端口 :firewall-cmd --list-ports 开放3306端口:firewall-cmd --zonepublic --add-port2375/tcp --permanent 防火墙重启:firewall-cmd --reload

html+css+js气球消除小游戏

气球消除小游戏 消除15个就成功 源码在图片后 点赞加关注&#xff0c;谢谢 左上角的数字显示消除气球的数量 定时随机生成气球 &#x1f388;&#x1f388;&#x1f388; 图片 源代码 <!DOCTYPE html> <html lang"en"> <head> <meta charset&…

2.3.2 主程序和外部IO交互 (文件映射方式)----IO Client实现

2.3.2 主程序和外部IO交互 &#xff08;文件映射方式&#xff09;----IO Client C实现 和IOServer主要差别&#xff1a; 1 使用Open_Client 连接 2 一定要先打开IOServer&#xff0c;再打开IO_Client 效果显示 1 C 代码实现 1.1 shareddataClient.h 头文件中引用 和sharedd…

0 TMS320F28379D 开坑

开坑原因 最近开始做实验&#xff0c;实验室的主控采用的是F2812FPGA&#xff0c;属于够用但不好用的状态。FPGA用于生成调制信号&#xff0c;DSP完成采样和控制。师兄师姐研究拓扑及调制策略&#xff0c;对驱动数量以及驱动逻辑有比较高的要求&#xff0c;因此不好脱离FPGA&a…

机器学习原理之 -- 支持向量机分类:由来及原理详解

支持向量机&#xff08;Support Vector Machine, SVM&#xff09;是统计学习理论的一个重要成果&#xff0c;广泛应用于分类和回归问题。SVM以其高效的分类性能和良好的泛化能力在机器学习领域中占据重要地位。本文将详细介绍支持向量机的由来、基本原理、构建过程及其优缺点。…

【Excel操作】Python Pandas判断Excel单元格中数值是否为空

判断Excel单元格中数值是为空&#xff0c;主要有下面两种方法&#xff1a; 1. pandas.isnull 2. pandas.isna判断Excel不为空&#xff0c;也有下面两种方法&#xff1a; 1. pandas.notna 2. pandas.notnull假设有这样一张Excel的表格 我们来识别出为空的单元格 import panda…

基于Hadoop平台的电信客服数据的处理与分析①项目准备阶段---项目技术预研(技术架构)

任务描述 掌握项目的总体功能&#xff0c;及实现流程。预习项目中所使用到的技术和知识点。 任务指导 一、项目效果展示 二、项目架构 1、总体架构&#xff1a; 2、技术架构 技术清单&#xff1a; 功能 组件 说明 消息中间件Kafka消息队列数据采集Flume日志采集工具存储…

js获取当前浏览器地址,ip,端口号等等

前言&#xff1a; js获取当前浏览器地址&#xff0c;ip&#xff0c;端口号等等 window.location属性查询 具体属性&#xff1a; 1、获取他的ip地址 window.location.hostname 2、获取他的端口号 window.location.port 3、获取他的全路径 window.location.origin 4、获取…

机器学习 C++ 的opencv实现SVM图像二分类的测试 (三)【附源码】

机器学习 C 的opencv实现SVM图像二分类的测试 (三) 数据集合下载地址&#xff1a;https://download.csdn.net/download/hgaohr1021/89506900 根据上节得到的svm.xml&#xff0c;测试结果为&#xff1a; #include <stdio.h> #include <time.h> #include <o…

25.labview数据采集中的读取和写入文本文件和Excel表格文件

①本文将会讲解labview读取和写入文本文件和Excel文件的几种不同方式&#xff0c;讲解程序的基本原理&#xff0c;并提出具体的实施方案&#xff0c;本文内容如下所示。 ②本文文章结束会提供大家 文本和表格读取写入的源程序 &#xff0c;以便于大家学习和使用。 本文中可能用…

商城小程序论文(设计)开题报告

一、课题的背景和意义 近些年来&#xff0c;随着移动互联网巅峰时期的来临&#xff0c;互联网产业逐渐趋于“小、轻、微”的方向发展&#xff0c;符合轻应用时代特点的各类技术受到了不同领域的广泛关注。在诸多产品中&#xff0c;被誉为“运行着程序的网站”之名的微信小程序…

HUAWEI MPLS 静态配置和动态LDP配置

MPLS(Multi-Protocol Label Switching&#xff0c;多协议标签交换技术)技术的出现&#xff0c;极大地推动了互联网的发展和应用。例如&#xff1a;利用MPLS技术&#xff0c;可以有效而灵活地部署VPN(Virtual Private Network&#xff0c;虚拟专用网)&#xff0c;TE(Traffic Eng…

昇思第7天

模型训练 模型训练一般分为四个步骤&#xff1a; 构建数据集。 定义神经网络模型。 定义超参、损失函数及优化器。 输入数据集进行训练与评估。 数据集加载 import mindspore from mindspore import nn # 从 MindSpore 数据集包中导入 vision 和 transforms 模块。 # visio…

肝癌-图像分类数据集

肝癌-图像分类数据集 数据集&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/18r-JS1FIv6BiyvlqDpUE0w?pwdrw5w 提取码&#xff1a;rw5w 数据集信息介绍&#xff1a; 文件夹 恶性 中的图片数量: 1008 文件夹 良性 中的图片数量: 882 所有子文件夹中的图片总数量: 1…

微软账户和本地账户有什么区别?如何切换登录账户?

Windows 操作系统是目前世界上比较流行的操作系统之一&#xff0c;在使用 Windows 系统的时候都需要我们进行登录&#xff0c;其中我们可以使用微软账户或者本地账户进行登录&#xff0c;那本地账户和微软账户有什么区别&#xff1f;下面就带大家了解一下微软账户和本地账户。 …

请不要在 Vue 中滥用“watch”功能,拜托了!

随着 Vue 3 的 Composition API 风格的普及&#xff0c;使用 watch 的成本越来越低。 现在&#xff0c;我们可以在任何地方使用 watch 来监听响应式数据。随着业务的推进&#xff0c;你可能会在代码中看到大量的 watch。 当你接手修改这些充满 watch 代码时&#xff0c;我相信…