selenium自动化测试入门 —— 操作元素对象

news2024/11/25 2:37:07

一、元素的常用操作

element.click() # 单击元素;除隐藏元素外,所有元素都可单击

element.submit() # 提交表单;可通过form表单元素提交表单

element.clear() # 清除元素的内容;如果可以的话

element.send_keys(‘需要输入的内容’) # 模拟按键输入;只针对支持输入的元素

注意:send_keys() 输入的内容必须为字符串

搜狗查询实例:

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.maximize_window()  # 最大化
driver.get(r'https://www.sogou.com/')  # 打开网页
driver.find_element_by_id('query').send_keys('selenium')  # 搜索框输入selenium
time.sleep(2)  # 等待3秒
driver.find_element_by_id('query').clear()  # 清除搜索框内容
time.sleep(2)
driver.find_element_by_id('query').send_keys('selenium')  # 重新输入内容
driver.find_element_by_id('sf').submit()  # 提交搜索框的表单
# driver.find_element_by_id('stb').submit()  #  提交按钮也可提交表单,单击按钮也可以
time.sleep(2)
driver.quit()  # 关闭浏览器

注意:submit() 提交表单,可以是提交按钮,也可以是表单元素,也可以是输入框元素

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

二、元素的常用方法

element.location 返回元素的坐标字典(相对于网页左上角0,0开始)

element.text 获取元素的文本,页面上看得到的文本

element.get_attribute('属性名称') 获得元素的属性 强调“有”

element.get_property('属性名称') 获得元素的固有属性值 强调“专”

element.is_displayed() 返回元素的结果是否可见,有些元素肉眼可见,但是他是隐藏的

示例:

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.maximize_window()  # 最大化
driver.get(r'https://www.sogou.com/')  # 打开网页
driver.find_element_by_id('query').send_keys('selenium')  # 搜索框输入selenium
element=driver.find_element_by_id('query')
print('搜索框的内容为:',element.get_attribute('value'))
print('搜索框的class属性:',element.get_attribute('class'))
print('搜索框的type属性:',element.get_attribute('type'))
print('搜索框的坐标位置:',element.location)
print('搜索框是否可操作:',element.is_displayed())
time.sleep(2)
text = driver.find_element_by_class_name('erwm-box').text  # 获取二位码的文本
print('底部二维码的文本为:',text)
time.sleep(2)
driver.quit()  # 关闭浏览器

1、element.location 获取元素的坐标位置

对于已加载到浏览器的底部元素,操作元素时现在chrome无法自动拖动滚动条,需要获取元素位置后,采用js拖动滚动条到相应位置采用操作元素。

2、element.text 获取元素的文本

<div class="erwm-box">
       <span class="ewm"></span>
       <div class="erwx">
           <p>搜狗搜索APP</p>
           <p class="p2">搜你所想</p>
       </div>
   </div>

如上,我们定位class="erwm-box"元素,获取到的文本是 [搜狗搜索APP 搜你所想] ,也就是界面上能看到的文字内容。输入框除外(输入框的值是存储在value属性中),只要是界面上的文本内容都可以获取。

多用于校验点。

3、element.get_attribute('属性名称') 获取对应的属性值,强调“有”

<input type="text" class="sec-input" name="query" id="query" maxlength="100" autocomplete="off">

如上搜索输入框的属性有type、class、name、id、maxlength、autocomplete;我都可以通过get_attribute()获取到他的值,因为他’有’。

value是特殊的属性,输入框,单项按钮,多选按钮多具有改属性。

4、element.get_property('属性名称') 获得元素的固有属性值,强调“专”

它与get_attribute() 差别,get_property()是获取元素的固有属性。

我们所有的元素都有特定固有属性,如id、type、value等。

当使用get_attribute()无法获取到属性的值时,可使用get_property()。

5、element.is_displayed() 判定改元素是否可见

当我们定位到了元素,但是无法操作时,可以看看他是否可见,不可见不一定就是在界面上消失了。

6、其他方法

element.size 元素的大小

element.is_enabled() 元素是否可用

element.is_selected() 元素是否被选中,用于检测复选框或单项按钮是否被勾选

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

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

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

相关文章

自动驾驶学习笔记(六)——Apollo安装

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《2023星火培训【感知专项营】》免费课程—>传送门 文章目录 前言 Apollo安装 硬件配置 安装Ubuntu…

C++笔记之vector的成员函数swap()和data()

C笔记之vector的成员函数swap()和data() 标准C中的std::vector类确实有swap()和data()这两个成员函数。下面是它们的简要描述&#xff1a; swap(): std::vector的swap()成员函数用于交换两个向量的内容&#xff0c;实现了高效的交换操作&#xff0c;不需要复制向量的元素。这…

『PyQt5-基本控件』| 16 什么是屏幕坐标系?

16 什么是屏幕坐标系? 1 什么是屏幕坐标系?2 相关概念3 代码实现4 获取窗口坐标4.1 直接获取4.2 通过坐标系获取4.3 获取Frame坐标1 什么是屏幕坐标系? 2 相关概念 屏幕坐标系,即窗口相对于屏幕的坐标。屏幕左上角坐标称为原点坐标(0,0);窗口的坐标,即窗口的左上角相对…

UE5C++学习(一)--- 增强输入系统

一、关于增强输入系统的介绍 增强输入系统官方文档介绍 二、增强输入系统的具体使用 注&#xff1a;在使用方面&#xff0c;不会介绍如何创建项目等基础操作&#xff0c;如果还没有UE的使用基础&#xff0c;可以参考一下我之前UE4的文章&#xff0c;操作差别不会很大。 如上…

Daily neaty和希亦内衣洗衣机哪款好,高性价比内衣洗衣机测评

现在市面最火的小家电莫过于是内衣洗衣机&#xff0c;那么它是否真的好用还是只是智商税呢&#xff1f;但关于内衣洗衣机&#xff0c;很多小伙伴都会选入手来释放自己的双手的&#xff0c;现在内衣洗衣机品牌众多&#xff0c;而且Daily neaty和希亦CEYEE-ACE这两个大品牌会被许…

Java CAS是什么,它的底层原理?

文章目录 前言一、CAS是什么二、CAS底层原理1、UnSafe类&#xff08;Native方法&#xff09;2、CAS思想&#xff08;自旋锁&#xff09;3、为什么使用CAS&#xff0c;不用synchronized&#xff1f;4、CAS缺点5、ABA问题&#xff0c;原子引用更新&#xff1f; 前言 对于CAS部分…

SSD入门到精通系列-总目录

依公知及经验整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《SSD入门到精通系列》 综述&#xff1a; SSD-序 [SSD综述1.1] 导论 免责声明&#xff1a; 本文根据公开信息整理&#xff0c;旨在介绍更多的存储知识&#xff0c;所载文章仅为作者观点&#xff0c;不构成投…

lv9 嵌入式开发 数据库sqlite

1 数据库基本概念 数据&#xff08;Data&#xff09; 能够输入计算机并能被计算机程序识别和处理的信息集合 数据库 &#xff08;Database&#xff09; 数据库是在数据库管理系统管理和控制之下&#xff0c;存放在存储介质上的数据集合 2 常用的数据库 大型数据库…

竞赛 深度学习猫狗分类 - python opencv cnn

文章目录 0 前言1 课题背景2 使用CNN进行猫狗分类3 数据集处理4 神经网络的编写5 Tensorflow计算图的构建6 模型的训练和测试7 预测效果8 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习猫狗分类 ** 该项目较为新颖&a…

google scholar 显示异常流量

有时候可能会出现下图警告&#xff0c;导致打不开谷歌学术的界面&#xff0c;我们需要修改一下访问网址 在网站后面添加 .pk 或者 .pr &#xff0c;如下&#xff1a; https://scholar.google.com.pk/https://scholar.google.com.pr/

网络变压器/网络滤波器/脉冲变压器接地电路的选择

Hqst华强盛(盈盛)电子导读&#xff1a;网络变压器/网络滤波器/脉冲变压器&#xff0c;以下都称网络变压器&#xff0c;它的接地在网络布置中非常重要&#xff0c;它可以有效地提高信号的稳定性和可靠性。 网络变压器接地的布置方式通常有以下几种&#xff1a; 一&#xff0c;单…

Rust学习日记(二)变量的使用--结合--温度换算/斐波那契数列--实例

前言&#xff1a; 这是一个系列的学习笔记&#xff0c;会将笔者学习Rust语言的心得记录。 当然&#xff0c;这并非是流水账似的记录&#xff0c;而是结合实际程序项目的记录&#xff0c;如果你也对Rust感兴趣&#xff0c;那么我们可以一起交流探讨&#xff0c;使用Rust来构建程…

《算法通关村—原来如此简单》

《算法通关村—原来如此简单》 理解层序遍历 我们有一个二叉树&#xff0c;我们如何去进行一层一层的遍历呢&#xff1f; 需要我们借用一个数据结构来进行遍历&#xff0c;数据结构就是队列。我们首先把根节点放入队列中&#xff0c;然后从此进行遍历。如何进行遍历&#xf…

SpringBoot项目从resources目录读取文件

SpringBoot 从 resources 读取文件 使用 Spring 给我们提供的工具类来进行读取 File file org.springframework.util.ResourceUtils.getFile("classpath:人物模板.docx");可能读取失败&#xff0c;出现如下错误&#xff1a; java.io.FileNotFoundException: clas…

JSP 中医知识管理系统myeclipse开发sql数据库BS模式java编程网页结构

一、源码特点 JSP 中医知识管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;比较流行的ssh框架系统具有完整的源代码和数据库&#xff0c;myeclipse开发系统主要采用B/S模式开发。 javaWeb中医知识系统 二、功能介绍 此次系统主要…

电脑提示由于找不到msvcp120.dll无法继续执行代码的问题如何解决

在打开软件过程中&#xff0c;我们可能会遇到各种错误和问题。其中之一就是msvcp120.dll无法继续执行代码的问题。这个问题通常是由于缺少或损坏的Microsoft Visual C Redistributable Packages导致的。为了解决这个问题&#xff0c;我们可以采取以下四个解决方案&#xff1a; …

【逗老师的无线电】BI1FQO教你整骚活,纯4G MMDVM热点版

开篇图&#xff0c;看我手搓出来的尺寸超小的MMDVM热点盒子&#xff08;都不能叫做盒子啦&#xff09; 咱就说这玩意尺寸有多小&#xff0c;架构有多简单&#xff0c;4G网卡直连双工热点版&#xff0c;省去树莓派或者OpenWrt&#xff0c;功耗低至0.几W。开机秒快。 基本原…

大数据管理平台是什么?如何利用工单系统提升企业管理效率?

随着数字化时代的来临&#xff0c;大数据管理平台已成为企业优化运营、提高竞争力的关键工具。工单管理系统作为大数据管理平台的核心组件&#xff0c;对于企业服务的优化和提升发挥着至关重要的作用。本文小编将为您揭示工单管理系统在大数据管理平台中的重要地位&#xff0c;…

libpcap之数据分流

当前系统都是多核系统&#xff0c;为了充分利用多核优势&#xff0c;数据包可以在底层就进行分流&#xff0c;可以通过多线程/多进程对同一个接口的数据进行并行的处理。 一、实验 一个server/client程序一个简单的抓包程序&#xff0c;抓取server/client之间的通信数据 1.1 …

Bat批量处理

一&#xff1a;创建文件夹 excel创建文件 复制出来新建文本文件 另存为bat 双击bat 二&#xff1a;批量移动文件 A列&#xff1a;获取的文件名列表 dir /b/o:n> original.txt B列&#xff1a;填充序号 C列公式&#xff1a;每隔9行增加1 INT((ROW(B1)-1)/9)1 D列公式&am…