selenium:WebElement类的核心操作方法(3)

news2024/11/25 2:25:40

图片

     当我们通过webdriver中的find_element函数定位到元素后,其实返回的是WebElement对象,而该对象有很多重要的方法,比如输入文本,点击按钮,获取属性,截屏等

WebElement类的方法介绍

文本输入与清除

send_keys()

在元素上模拟按键输入,通常用于向输入框中填充文本。

clear()

清除元素的输入内容,如清空一个文本输入框。

点击操作

click()

单击元素,可以是按钮、链接等可点击的元素。

submit()

提交表单,也可以使用click()方法,但submit()方法专门用于表单的提交。

元素属性与状态获取

get_attribute(element_name)

获取元素的属性值,如id、name、type等。

is_selected()

判断元素是否被选中,常用于单选框、复选框等。

is_displayed()

判断元素是否可见,返回一个布尔值。

is_enabled()

判断元素是否可启用,例如,某些按钮在特定条件下可能不可点击。

获取元素尺寸与位置

size

返回元素的尺寸,通常包含宽度和高度。

location

返回元素在页面上的位置,通常是元素的左上角坐标。

获取元素信息

text

获取元素的文本内容,如获取一个段落或链接的文本。

tag_name

获取元素的tag信息。

截屏

screenshot(filename)

将当前元素截屏保存为png图片

screenshot_as_base64

将当前元素截屏保存为base64编码的字符串

screenshot_as_png

将当前元素截屏保存为base64字符串,然后解码为2进制字节码

以上函数位于如下webelement.WebElement类中:

示例:打开百度输入文本后点击搜索(输入框操作)

我们以获取元素的id举例,先上代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
# 创建Safari浏览器的WebDriver实例
driver = webdriver.Safari()
# 打开一个网页
driver.get("https://www.baidu.com")
#最大化网页
driver.maximize_window()
#查找id=kw的元素位置,对应于搜索输入框,找到后我们输入字符python
driver.find_element(By.ID,'kw').send_keys('python')
##查找id=su的元素位置,对应于‘百度一下’的按钮,找到后我们点击按钮
driver.find_element(By.ID,'su').click()
# 等待几秒
sleep(5)
# 关闭浏览器
driver.quit()

代码执行后,网页自动打开并搜索如下:

图片

示例:打开百度输入用户名和密码进行登录(表单操作)

from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
driver = webdriver.Safari()
# 打开一个网页
driver.get("https://www.baidu.com")
driver.maximize_window()
sleep(1)
#点击登录
driver.find_element(By.ID,'s-top-loginbtn').click()
sleep(1)
#输入用户名
driver.find_element(By.ID,'TANGRAM__PSP_11__userName').send_keys('*****')
sleep(1)
#输入密码
driver.find_element(By.ID,'TANGRAM__PSP_11__password').send_keys('*****')
sleep(1)
#点击同意
driver.find_element(By.ID,'TANGRAM__PSP_11__isAgree').click()
sleep(1)
#点击提交
driver.find_element(By.ID,'TANGRAM__PSP_11__submit').submit()

程序执行后会自动输入用户和密码,点击登录

示例:获取元素后将元素截屏

我们获取元素后,使用函数screenshot将元素截屏,参数filename传入完整的png文件名路径或者文件名(放在当前路径)

图片

测试代码:打开头条网站,定位到左上角的‘下载头条app’然后截屏保存。

from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Safari()
#打开传入的URL网页地址
driver.get("https://www.toutiao.com/")
sleep(6)
element = driver.find_element(By.XPATH,'//*[@id="root"]/div/div[3]/div[1]/div')
element.screenshot('1.png')
element.screenshot('/Users/aaa/Donwloads/1.png')

执行后打开截图如下:

示例:获取元素的text/ta gtag_name信息

图片

from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Safari()
#打开传入的URL网页地址
driver.get("https://www.toutiao.com/")

定位到左上角的‘下载头条app’元素,并打印元素的信息

element = driver.find_element(By.XPATH,'//*[@id="root"]/div/div[3]/div[1]/div')
#打印该元素的一些信息
print(element.tag_name)
print(element.text)

执行结果:
DIV
下载头条APP扫码下载今日头条

示例:获取元素的属性值

通过get_attribute函数,传入参数比如id,class,xpath等信息,返回对应的值。

from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Safari()
#打开传入的URL网页地址
driver.get("https://www.toutiao.com/")
#定位到左上角的‘下载头条app’然后截屏保存。
element = driver.find_element(By.XPATH,'//*[@id="root"]/div/div[3]/div[1]/div')
#打印该元素的属性值
print(element.get_attribute('class'))

执行结果:

download-app-wrapper

共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”

-----指水滴不断地滴,可以滴穿石头;

-----比喻坚持不懈,集细微的力量也能成就难能的功劳。

----感谢读者的阅读和学习,谢谢大家。

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

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

相关文章

【原创教程】电气电工23:电气柜的品牌及常用型号

电气电工要清楚常用的电气柜品牌及型号,对于电器柜的选择,现在我们一般常用的品牌有3个。分别是好夫满、上海上海桐赛电气和南京巴哈曼电气,还有一种就是网上订制。 一、好夫满系列电气箱 好夫满有很多种类的机箱,EB精巧控制箱系列、KL接线箱系列、BKL不锈钢接线箱系列、…

构建基于 阻塞队列 / 环形队列 的高效生产消费者模型系统

1. 生产者-消费者问题 概述 生产-消费者模型 :一个或多个 生产者线程 产生数据并将其放入共享缓冲区,同时一个或多个 消费者线程 从该缓冲区中读取数据进行操作的情景。 缓冲区 是一个用于存储生产者产生数据的中间容器;缓冲区 的容量通常是…

【操作系统】四、文件管理:1.文件系统基础(文件属性、文件逻辑结构、文件物理结构、文件存储管理、文件目录、基本操作、文件共享、文件保护)

文件管理 文章目录 文件管理八、文件系统基础1.文件的属性2.文件的逻辑结构2.1顺序文件2.2索引文件2.3索引顺序文件2.4多级索引顺序文件 3.目录文件❗3.1文件控制块FCB3.1.1对目录进行的操作 3.2目录结构3.2.1单级目录结构3.2.2两级目录结构3.2.3多级目录结构(树形目…

vue2引入i18n插件实现中英文切换

vue2引入i18n插件实现中英文切换 1.安装i18n插件2.引入3.使用4.数据渲染 1.安装i18n插件 npm install vue-i18n --save-dev注意: vue2环境下安装i18n插件时 有可能会报错(我的这个项目比较老,vue2.5.x版本的),报错信息…

保姆级教程 | Linux中grep命令使用 分子动力学轨迹文件输出特定原子电荷值

背景 由于课题需要,现根据lammps运行得到的轨迹需要提取出目标原子的电荷值 步骤 思路 首先确定目标原子在轨迹中的序号(lammps每个原子都有自己独立的【分子号原子号】) 其次要十分清楚体系中的分子号排序方式,然后只要筛选出…

安卓13禁止锁屏 关闭锁屏 android13禁止锁屏 关闭锁屏

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改5.彩蛋1.前言 设置 =》安全 =》屏幕锁定 =》 无。 我们通过修改系统屏幕锁定配置,来达到设置屏幕不锁屏的配置。像网上好多文章都只写了在哪里改,改什么东西,但是实际上并未写明为什么要改那…

浅谈虚拟电厂在分布式光伏发电应用示范区中的应用及前景

0引言 随着电力体制改革的持续推进,电力市场将逐步建立和完善,未来的售电主体也将随着配售电业务的逐步放开而日益多元化,新的政策不断鼓励分布式电源和微电网作为独立的配售电市场主体推动运营模式的创新。与微电网所采取的就地应用为控制目…

离散数学-逻辑与证明基础1.4(谓词和量词)

谓词 1.4.2 谓词 涉及变量的语句,例如: “ x > 3 x > 3 x>3”,“ x y 3 x y 3 xy3”,“ x y z x y z xyz” 以及 \quad “Computer x x x is under attack by an intruder” \quad “Computer x x x is f…

nginx虚拟主机配置与locaion规则

目录 1.虚拟主机 1.1分类 1.2基于域名的虚拟机 1.2.1测试 1.3基于端口的虚拟主机 1.3.1测试 ​编辑1.4基于IP的虚拟主机 2.nginx日志 3.location 1.虚拟主机 虚拟主机:相当于1个网站,在nginx中通过server{}区域实现。 nginx虚拟主机有不同的配置类型…

科研论文必备:10大平台和工具助你高效查找AI文献

申博、留学、评职称的同学,逃不过要发表论文。对很多人尤其是对于论文新手来说,写论文可能是一个极具挑战性的过程。今天Bulu分享以下10个论文平台、论文检索工具,会大大提高论文撰写效率,告别熬夜肝论文!建议收藏哦&a…

【原创】java+springboot+mysql劳动教育网系统设计与实现

个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…

78.【C语言】EOF的解释

1.cplusplus网的介绍 在这几篇文章提到过,但没有详细阐释过EOF的细节 24.【C语言】getchar putchar的使用E4.【C语言】练习:while和getchar的理解32.【C语言】详解scanf 75.【C语言】文件操作(3) cplusplus网的介绍 点我跳转 翻译 常量 EOF 文件结束(End-Of-Fi…

STM32F103C8T6 - 定时器

一、定时器简介 定时器总共分为4部分,8小结。 第一部分(定时中断、内外时钟源选择):定时器基本定时计数功能,定一个时间,让定时器每隔一段时间定时中断一次 。 第二部分(输出比较&#xff09…

21年408数据结构

第一题: 解析:q指针指向要被删除的元素,当这个元素是链表中唯一一个元素时,q指针和尾指针都指向同一个元素,那么在删除掉这个元素之前,需要将尾指针调整到指向头指针的位置,此时链表为空&#x…

【C++】——继承(下)

【C】——继承(下) 5 继承与友元6 继承与静态成员7 多继承7.1 继承模型7.2 菱形继承的问题7.3 虚继承7.4 多继承中的指针偏移问题 8 组合与继承 5 继承与友元 友元关系不能被继承。即一个函数是父类的友元函数,但不是子类的友元函数。也就是说…

独立站外链策略如何确保SEO效果最大化?

在SEO优化中,外链的建设是不可忽视的重要环节。特别是独立站外链,它不仅能够提升网站在搜索引擎中的排名,还能通过高质量的dofollow链接,促进谷歌对网站的快速收录。那么该如何建立一套有效的独立站外链策略? 首先&…

与C++内存管理和STL简介的爱恨情仇

本文 1.C/C内存分布2.C语言中动态内存管理方式:malloc/calloc/realloc/free总结 3.C内存管理方式new/delete操作内置类型new和delete操作自定义类型 4.operator new与operator delete函数(重要点进行讲解)5.new和delete的实现原理内置类型自定…

Redis主从复制机制详解

目录 一、主从复制介绍二、搭建主从复制三、主从复制流程四、关于Replication ID五、主从复制核心知识六、主从复制应用场景七、主从复制的注意事项 一、主从复制介绍 1、什么是主从复制? 2、为什么要使用主从复制? redis-server单点故障。单节点QPS…

MyBatis XML映射文件

XML映射文件 XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名)XML映射文件的namespace属性为Mapper接口全限定名一致XML映射文件中SQL语句的id与Mapper接口中的方法名一致,并保持返…

MBI6665Q升降压LED驱动芯片车规级AEC-Q100

MBI6665Q是由聚积科技(Macroblock Inc.)开发的一款多拓扑恒流LED驱动器,主要用于汽车照明应用。凭借其强大的功能集,MBI6665Q可以满足高效照明解决方案的需求,广泛应用于日间行车灯(DRL)、雾灯等…