selenium元素_浏览器_鼠标_键盘_等待

一、元素操作
   2.1 方法
      1). send_keys() # 输入方法
      2). click() # 点击方法
      3). clear() # 清空
   2.2 提示:
      1. 在输入方法之前一定要清空操作。
      
二、浏览器常用操作API
   2.1 方法
      1). driver.maximize_window() # 最大化浏览器
      2). driver.set_window_size(w, h) # 设置浏览器大小 单位像素
      3). driver.set_window_position(x, y) # 设置浏览器位置
      4). driver.back() # 后退操作
      5). driver.forward() # 前进操作
      6). driver.refresh() # 刷新操作
      7). driver.close() # 关闭当前主窗口(主窗口:默认启动哪个界面,就是主窗口)
      8). driver.quit() # 关闭由driver对象启动的所有窗口
      9). driver.title # 获取当前页面title信息
      10). drive.current_url # 获取当前页面url信息
      
   2.2 提示:
      1. driver.title 和 driver.current_url 没有括号,应用场景:一般为判断上步操作是否执行成功。
      2. driver.maximize_window() # 一般为我的前置代码,在获取driver后,直接编写最大化浏览器
      3. driver.refresh() 应用场景,在后面的cookie章节会使用到。
      4. driver.close()与driver.quit()区别:
         close():关闭当前主窗口
         quit():关闭由driver对象启动的所有窗口
         提示:如果当前只有1个窗口,close与quit没有任何区别。
         
三、元素信息操作API
   3.1 方法:
      1). text 获取元素文本  如:driver.text
      2). size 获取元素大小  如:driver.size
      3). get_attribute 获取元素属性值 如:driver.get_attribute("id")
      4). is_displayed 判断元素是否可见 如:element.is_displayed()
      5). is_enabled 判断元素是否可用 如: element.is_enabled()
      6). is_selected 判断元素是否被选中 如:element.is_selected()
      
   3.2 提示: 
      1. text和size调用时 无括号
      2. get_attribute一般应用场景:判断一组元素是否为想要的元素或者判断元素属性值是否正确
      3. is_displayed、is_enabled、is_selected,在特殊应用场景中使用。
      
四、鼠标操作
   4.1 为什么使用鼠标操作?
      为了满足丰富的html鼠标效果,必须使用对应的方法。
   4.2 鼠标事件对应的方法在哪个类中
      ActionChains类--->导包 from selenium.webdriver.common.action_chains import ActionChains
   4.3 鼠标事件常用的操作方法
      1. context_click() # 右击
         应用:context_click(element).perform()
      2. double_click() # 双击
         应用:double_click(element).perform()
      3. drag_and_drop() # 拖拽
         应用:drag_and_drop(source, target).perform
      4. move_to_element() #悬停
         应用: move_to_element(element).perform()
      5. perform() # 执行以上事件方法
   
   4.4 提示: 
      1. selenium框架中虽然提供了,右击鼠标方法,但是没有提供选择右击菜单方法,可以通过发送快捷键的方式解决(经测试,谷歌浏览器不支持)。
      
五、键盘操作
   4.1 键盘对应的方法在Keys类中
      包:from selenium.webdriver.common.keys import Keys
   4.2 常用的快捷键:
      CONTROL:Ctrl键
      其他,请参考Keys底层定义的常亮
   4.3 应用
      组合键:element.send_keys(Keys.XXX, 'a')
      单键:element.send_keys(Keys.XXX)
      
六、元素等待
   6.1 为什么要设置元素等待
      由于电脑配置或网络原因,在查找元素时,元素代码未在第一时间内被加载出来,而抛出未找到元素异常。
   6.2 什么是元素等待
      元素在第一次未找到时,元素等待设置的时长被激活,如果在设置的有效时长内找到元素,继续执行代码,如果超出设置的时长未找打元素,抛出未找到元素异常。
   6.3 元素等待分类
      1. 隐式等待
      2. 显示等待
   6.4 隐式等待
      方法:driver.implicitly_wait(30) # 一般情况下设置30秒
      特色:
         1. 针对所有元素生效。
         2. 一般情况下为前置必写代码(1.获取浏览器驱动对象;2. 最大化浏览器;3. 设置隐式等待)
         
   6.5 显示等待
      方法:WebDriverWait(driver,timeout=10, poll_frequency=0.5).until(lambda x:x.find_element_by_id("#user")).send_keys("admin")
      参数:
         timeout: 超时时间
         poll_frequency:访问频率,默认0.5秒找一次元素
         x: x为driver,它是WebDriverWait类将传入的driver赋值给类self._driver,until方法调用了self._driver;
         
      提示: 
         1. WebDriverWait(driver,timeout=10, poll_frequency=0.5).until(lambda x:x.find_element_by_id("#user"))返回的一个元素。
         
   6.6 显示等待与隐式等待区别:
      1. 显示等待:针对单个元素生效
      2. 隐式等待:针对全局元素生效

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

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

相关文章

nginx的前世今生(二)

书接上回: 上回书说到,nginx的前世今生,这回我们继续说 3.缓冲秘籍,洪流控水 Nginx的缓冲区是其处理数据传输和提高性能的关键设计之一,主要用于暂存和管理进出的数据流,以应对不同组件间速度不匹配的问题…

PG WAL日志理解

类似于oracle的redo log,用于数据库恢复,当一条SQL语句执行,PG会把对应的块放到缓冲区执行,,会写进WAL缓冲区会进行写操作,commit后,WAL writer进程进行写操作,把日志缓冲区WAL buff…

SpringData JPA - ORM 框架下,打造高效数据访问层

目录 一、SpringData JPA 概述 1.1、什么是 JPA 1.2、什么是 ORM 1.3、什么是 Hibernate 1.4、JPA 和 Hibernate 的关系 1.5、JPA 的优势 二、SpringData JPA 实战开发 2.1、依赖 2.2、配置文件 2.3、启动类 2.4、创建实体 2.5、基于 JpaRepository 的 CRUD 三、…

超市购物|基于SprinBoot+vue的超市购物系统(源码+数据库+文档)

目录 基于SprinBootvue的企业人事管理系统 一、前言 二、系统设计 三、系统功能设计 1商品管理 2公告管理 3公告类型管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设…

C语言--带环链表问题

继续学习 一、判断链表是否带环 141. 环形链表 - 力扣(LeetCode) 思路:用快慢指针,快指针走两步,慢指针走一步,当慢指针走一半快指针进到环里 当慢指针进环,快指针已经在环中转了一会儿了 | |…

“字节跳动-文远知行杯”——广东工业大学第十四届程序设计竞赛

补题补题&#xff1a; A、hzy 和zsl 的生存挑战 题解&#xff1a;由于我们去考虑最优解&#xff0c;那么其中两人就应该是这样走法&#xff0c;一人选择相同数&#xff0c;另一人选择相反数&#xff0c;这样必会通关 #include <iostream> using namespace std;int main(…

Web服务器手动配置

目录 配置环境 http配置 配置步骤 1、首先安装Nginx&#xff08;已经安装的跳过这步&#xff09; 2、查看一下下Nginx的配置文件结构&#xff0c;了解如何配置&#xff0c;以及配置的各个条目有什么作用&#xff08;为接下来的配置打基础&#xff09; 3、创建你的网页 4、…

【银角大王——Django课程——靓号搜索实现/单独一篇】

搜索框功能实现 靓号搜索在Django框架中搜索功能实现——底层就是模糊查询添加一个搜索框&#xff0c;使用bootstrap框架将GO&#xff01;修改成一个放大镜靓号列表函数代码解释效果演示 靓号搜索 在Django框架中搜索功能实现——底层就是模糊查询 数字条件用法字符串条件用法…

学习如何使用PyQt5实现notebook功能

百度搜索“pyqt5中notebook控件”&#xff0c;AI自动生成相应例子的代码。在 PyQt5 中&#xff0c;QTabWidget 类被用作 Notebook 控件。以下是一个简单的示例&#xff0c;展示如何创建一个带有两个标签的 Notebook 控件&#xff0c;并在每个标签中放置一些文本。 import sys f…

电子信息工程专业就业前景怎么样

电子信息工程专业的就业前景十分广阔&#xff0c;主要得益于现代社会对信息技术的依赖不断加深以及科技的快速发展&#xff0c;以下是上大学网&#xff08;www.sdaxue.com&#xff09;对该专业就业前景的具体分析&#xff0c;供大家参考&#xff01; 行业需求广泛&#xff1a;随…

VBA字典与数组第十四讲:单列数组与单行数组间的运算

《VBA数组与字典方案》教程&#xff08;10144533&#xff09;是我推出的第三套教程&#xff0c;目前已经是第二版修订了。这套教程定位于中级&#xff0c;字典是VBA的精华&#xff0c;我要求学员必学。7.1.3.9教程和手册掌握后&#xff0c;可以解决大多数工作中遇到的实际问题。…

动态规划 ------ 背包问题

文章目录 1. 01 背包问题1.二维解决2. 一维优化 2. 完全背包问题1.暴力3 for.2. 二维优化3. 一维优化 3. 多重背包问题Ⅰ.1. 二维解决2. 一维优化 4. 多重背包问题Ⅱ5. 混合背包问题6. 二维费用背包问题7. 分组背包问题 背包问题是动态规划中非常典型的一些题&#xff0c;本篇文…

ctfshow——SSRF

文章目录 web 351web 352web 353web 354web 355web 356web357web 358web 359web 360 SSRF(Server-Side Request Forgery&#xff1a;服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下&#xff0c;SSRF攻击的目标是从外网无法访问的内部系统…

同向双指针(滑动窗口)算法

209. 长度最小的子数组 这里的更新结果就题来定 class Solution {public int minSubArrayLen(int target, int[] nums) {int sum 0;int len 0;int f 0;for(int left 0, right 0; right < nums.length;){//求和sum nums[right];while(sum > target){//lenint t ri…

分布式锁之-redis

什么是分布式锁&#xff1f; 即分布式系统中的锁。在单体应用中我们通过锁解决的是控制共享资源访问的问题&#xff0c;而分布式锁&#xff0c;就是解决了分布式系统中控制共享资源访问的问题。与单体应用不同的是&#xff0c;分布式系统中竞争共享资源的最小粒度从线程升级成了…

JVM垃圾回收器G1大总结-详解

一、介绍: 1.停顿时间模型?? 作为CMS收集器的替代者和继承人&#xff0c;G1是基于“停顿时间模型”诞生的的垃圾收集器&#xff0c;停顿时间模型的意思是能够支持指定在一个长度为M毫秒的时间片段内&#xff0c;消耗在垃圾收集上的时间大概率不超过N毫秒这样的目标. 2.G1摒…

进程与线程(进程)

进程&#xff1a; 概念&#xff1a;进程是进程实体的运行过程&#xff0c;是系统进行资源分配和调度的一个独立单位 PID:当进程被创建时&#xff0c;操作系统会为该进程分配一个唯一的、不重复的“身份证号” 组成&#xff1a; PCB&#xff08;进程控制块&#xff09;&#…

使用AIGC生成软件类图表

文章目录 如何使用 AI 生成软件类图表什么是 MermaidMermaid 的图片如何保存&#xff1f;mermaid.liveDraw.io Mermaid可以画什么图&#xff1f;流程图时序图 / 序列图类图状态图甘特图实体关系图 / ER图 如何使用 AI 生成软件类图表 ChatGPT 大语言模型不能直接生成各类图表。…

W801学习笔记二十:宋词学习应用

前三章完成了唐诗的应用&#xff0c;本章将实现宋词的学习应用。 宋词与唐诗的区别不大&#xff0c;马上开始。 1、我们需要参考前面唐诗的方式&#xff0c;把宋词文本下载下来&#xff0c;并进行格式整理。 W801学习笔记十七&#xff1a;古诗学习应用——上 2、在菜单中添加…

电脑上的视频在电视上播放

视频右键->播放到设备->客厅电视 海信电视测试成功
最新文章