selenium4

2023-11-16

1.单选框和复选框

  • 单选框 type:radio

    • 定位-->点击

    • 判断是否被选中

      • 元素.is_selected()

  • 复选框 type:checkbox

    • 只选择一个---->同单选框一样

    • 全选

      • 定位所有复选框

      • 遍历

        • 判断是否被选中

        • 点击

    • 选择部分

      • 将部分提取出来生成一个列表格式,做筛选

2.浏览器加载项实现免登陆(了解)

  • 手动登录一次,并且记住密码

  • 火狐浏览器

    • 1.找配置文件夹路径 profile_directory变量名保存

    • 2.profile = webdriver.FirefoxProfile(profile_directory)

    • 3.driver = webdriver.Firefox(profile)

    • 4.打开需要免登陆的地址

  • 谷歌浏览器

    • 1.个人资料路径 user_data_dir = "--user-data-dir=路径"

    • 2.options = webdriver.ChromeOptions()

    • 3.options.add_argument(user_data_dir)

    • 4.driver = webdriver.Chrome(options=options)

    • 5.打开需要免登陆的地址

3.富文本操作

  • 富文本

    • 可以编辑输入文字的输入框

  • 操作富文本相当于操作iframe

4.上传文件

  • 对于input类型的type=file

    • send_keys("文件路径")

  • 非input标签类型的,可以借助autoit工具或者SendKeys第三方库。

5.cookie

因为HTTP协议是无连接,无状态的

cookie---记录用户信息,身份识别,不安全

客户端--浏览器

cookie保存的信息按照键值对形式保存的

sessionID和用户的IP绑定

session---保存在服务端

token---针对移动端

5.1cookie组成

{'domain': 'baidu.com', 'expiry': 3715061771.33889, 'httpOnly': False, 'name': 'BAIDUID', 'path': '/', 'secure': False, 'value': '365A71E423ECB961F95747D0BB3C7F5D:FG=1'}

  • domain: cookie的域名

  • httpOnly:预防XSS攻击--跨站脚本攻击

  • name: cookie名称 必须存在一个属性

  • path: cookie产生的路径

  • secure: 定义cookie安全性

  • value: cookie名称对应的值 必须存在一个属性

  • expiry: cookie有效期

5.2cookie操作

  • 获取所有的cookie

    • driver.get_cookies() # 格式,列表嵌套字典[{},{},{}.....]

  • 添加cookie

    • driver.add_cookie(字典格式参数)

5.3验证码处理

  • 2.1 去掉验证码(风险)

  • 2.2 万能验证码

  • 2.3 验证码识别技术(不推荐使用)

  • 2.4 操作cookie 1.获取登录后的cookie 通过浏览器F12或抓包工具 2.将登录后的cookie添加到脚本中(确定具体需要使用那些值) driver.add_cookie(字典格式) 3.执行刷新操作 driver.refresh()

  • 2.5 设置浏览器加载项

6.元素等待

1.sleep

  • 强制等待-----Python代码

2.隐式等待

  • 针对的是整个页面;在固定等待时间内,检测整个页面的元素是否加载成功

  • implicitly_wait()

    • 参数:时间---最大等待时间,单位秒s

3.显式等待

  • 针对具体元素:在固定等待时间内,检测元素是否存在---检测方式---轮询

  • WebDriverWait 类

    • WebDriverWait(driver,timeout).until(method)

      • driver --浏览器

      • timeout --最大等待时间

      • method --将一个方法作为参数使用

7.EC模块

expected_conditions---预期条件:对selenium中一些方法做的封装

  • EC模块一般和WebDriverWait配合使用

    • WebDriverWait(driver,timeout).until(EC.方法)

  • title_is(预期标题) ---判断页面标题是否和预期标题完全一致

作业 day_4

1.课堂代码 抄1遍,敲2遍

2.总结前四天学习内容

敏捷开发流程

用户想法----->产品---->需求(优先级,上线时间)------->需求池----->开发,测试,产品决定提取哪些需求

开会决定下一个周期工作内容

周期:一周/2周 以1周为例

每周周五:开发,测试,产品开会决定下周的工作内容

周一------周三:开发时间

周一:分析需求,排列每个需求的交付时间,最迟的交付时间周三下班前

如果开发认为周三无法交付,提前报风险,风险评估(开发,测试,产品负责人)

周四,周五:测试时间

产品---开发---测试---运维

公司日常工作流

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

selenium4 的相关文章

随机推荐

  • Spring IoC容器

    转自 Spring IoC容器 一 Ioc简介 IoC容器是Spring中的核心 我们通常也将其称之为Spring容器 Spring使用IoC容器对对象的实例化和初始化的操作 及管理对象的创建到销毁的生命周期 Spring中使用的对象全部由
  • OSI网络模型(TCP/IP五层模型)

    互联网由一系列的网络协议组成 这些协议的集合叫做OSI协议 按照功能可以划分为七层 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 也就是我们常说的OSI七层模型 每一层使用下层提供的服务 并向上层提供服务 OSI七层模型只是一
  • uni-app store 状态管理学习,多写几遍就会了

    uni app使用了一段时间了 一直没有用到store 状态管理 还是应该学习一下 以后会用到的 1 使用hbuiderx创建uni app项目 2 与static同级创建store文件夹 store文件夹下创建index js 3 关键i
  • sqlserver数据类型转换(将 nvarchar 转换为数据类型 numeric 时出现算术溢出错误)

    一般情况下 sqlserver会自动完成数据转换 但这种转换有时候很容易出错 尤其是nvarchar转换为numeric时 如果能够明确数据类型 最好显式转换 举个我遇到的例子 SELECT FROM ITEM INFO TEST WHER
  • BLE学习(4):蓝牙地址类型和设备的隐私

    蓝牙地址也被称为蓝牙MAC地址 它能唯一标识一个蓝牙设备的48位的值 在蓝牙规范中 它被称为BD ADDR 蓝牙的地址类型可以分为两种 public addresses和random addresses 其中random addresses
  • visual studio2019创建运行第一个C++详细步骤与断点调试的简单认识

    是去官网下的社区版 可以用自己的微软账号登录也不需要网上找破解版了 安装过程还是很顺利的 下面在第一次使用vs2019下创建C 项目 依次helloworld 计算器类 首先明确 在vs中是使用项目来组织代码 使用解决方案来组织项目 所以首
  • adb连接及常用命令

    adb命令连接模拟器设备 以夜神模拟器为例 夜神模拟器默认端口为62001 adb connect 127 0 0 1 62001 当打开了多个模拟器 设备连接失败时 解决方法 查看连接的设备 可以查看连接的adb的设备情况 如果连接多个设
  • 02_计算机网络笔记-网络拓扑-交换机-VLAN

    文章目录 一般家庭的网络拓扑 交换机的基本原理与配置 虚拟局域网VLAN 个人博客 https blog csdn net cPen web 一般家庭的网络拓扑 光猫 调制解调器 1 光信号和电信号的转换 2 路由器的功能 可以拨号 账号和
  • MyBatis 采用注解方式批量更新数据 @Mapper @Update (包含2种方法)

    批量更新数据方法 1 注释db filed name 表示的是的数据库字段名字 entity name 表示的是你的实体字段 table name 表示你的表名 Update
  • ONNXRUNTUIME c++使用(分割网络)与相关资料(暂记)

    下面的教程是在linux系统上运行的 如果想在windows系统上运行 可以看官方链接或中文教程https bbs huaweicloud com blogs 335706 官方链接中有完整的VS的带 sln的项目 ONNXRUNTUIME
  • ES学习笔记之-ClusterState的学习

    前面研究过ES的get api的整体思路 作为编写ES插件时的借鉴 当时的重点在与理解整体流程 主要是shardOperation 的方法内部的调用逻辑 就弱化了shards 方法 实际上shards 方法在理解ES的结构层面 作用更大一些
  • JAVA获取IP地址、电脑Mac地址

    1 获取IP地址 注意 IP地址经过多次反向代理后会有多个IP值 其中第一个IP才是真实IP 所以不能通过 request getRemoteAddr 获取IP地址 如果使用了多级反向代理的话 X Forwarded For的值并不止一个
  • javaWeb项目中分页和模糊查询技术

    分页 需求 登录成功后 展现全部时 出现分页 思路 前端 1 设置分页按钮 以及分页数据 页码 总页数 总条数 2 设置分页请求 即点击上一页 下一页时发请求 后端 3 web xml映射 映射到Servlet能接收请求 4 Dao查询分页
  • opencv实践项目-人脸检测

    目录 1 opencv CascadeClassifier人脸检测步骤 2 CascadeClassifier分类器简介 2 1 从文件中加载级联分类器 2 2 目标检测方法 3 代码实现 1 opencv CascadeClassifie
  • SRVE0255E: A WebGroup/Virtual Host to handle /p2pd/servlet/dispatch has not been defined.

    Technote troubleshooting Problem Abstract When setting up IBM Cognos within IBM WebSphere the URI is not accessible The
  • 【MySQL】轻松学习 普通索引

    目录 引言 一 普通索引的创建 1 创建表时定义索引 2 已存在的表上创建索引 3 ALTER TABLE 语句创建索引 二 查看索引执行情况 引言 创建索引是指在某个表的一列或多列上建立一个索引 以便提高对表的访问速度 创建索引有3种方式
  • umijs----路由(修改路由的某一个path )

    1 在src下创建app js ts tsx 2 修改路由 export function patchRoutes routes routes为 umirc ts中设置的routes数组 可以使用数组的方法插入删除 运行时在最前面插入一个路
  • Webpack配置Vue热更新

    Webpack配置Vue热更新 需要的包 cnpm i vue webpack webpack cli webpack dev server html webpack plugin clean webpack plugin style lo
  • 【正点原子MP157连载】第七章 认识HAL库-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南

    1 实验平台 正点原子STM32MP157开发板 2 购买链接 https item taobao com item htm id 629270721801 3 全套实验源码 手册 视频下载地址 http www openedv com t
  • selenium4

    1 单选框和复选框 单选框 type radio 定位 gt 点击 判断是否被选中 元素 is selected 复选框 type checkbox 只选择一个 gt 同单选框一样 全选 定位所有复选框 遍历 判断是否被选中 点击 选择部分