web自动化系列-selenium方法和属性的使用(九)

server/2024/9/23 9:34:32/

 

继续介绍selenium中的一些方法和属性 ,下面的这些方法和前面已经介绍过的clear 、send_keys等都是在一个类中,即WebElement 。我们其实使用很多方法都是在这个类中 。

1.方法和属性

类型方法/属性说明场景
属性size返回元素的大小/
属性text返回元素的文本信息用它获取实际值进行断言
方法get_attribute(‘x’)获取属性的值,传递的是属性有时候想要获取其值可用它
方法is_displayed()判断元素是否可见返回bool类型 ,封装类方法可用到
方法is_enabled()判断元素是否可用返回bool类型 ,封装类方法可用到
方法is_selected()判断元素是否被选中,主要用来检查复选框和单选按钮是否被选中返回Bool类型 ,只有有复选框或单选按钮的场景才可用到

以上的属性或方法中 ,使用最频繁的就是text ,我们用它来获取软件的返回值 ,从而进行断言操作 。

2.具体案例

需求:通过selenium完成对tpshop的注册操作,具体如下 :

  1. 进入首页,点击注册按钮 ,进入到注册页面

  2. 使用size获取欢迎注册图标的大小

  3. 使用text获取欢迎注册的文本信息

  4. 使用get_attribute()方法获取欢迎注册的属性值

  5. 使用is_displayed()方法判断欢迎注册元素是否可见

  6. 使用is_enabled()方法判断欢迎注册元素是否可用

  7. 使用is_selected()方法判断复选框是否被选择

  8. 点击复选框 ,将勾取消掉 。

  9. 再次使用is_selected()方法判断复选框是否被选择

具体代码 :  

python"># 属性和方法from selenium import webdriver
import time# 1. 创建浏览器对象
driver = webdriver.Chrome()
driver.maximize_window()# 2. 输入地址 :http://localhost
driver.get("http://localhost")# 3. 点击注册
driver.find_element_by_link_text("注册").click()
time.sleep(2)# 获取欢迎注册的大小 :size
elem = driver.find_element_by_xpath("//span[@class='m-fntit']")
print("size:{}".format(elem.size))# 获取欢迎注册的文本 :text
print("text:{}".format(elem.text))# 获取属性值 :get_attribute()
print("属性值:{}".format(elem.get_attribute('class')))# 判断元素是否可见 :is_displayed()
print("元素是否可见:{}".format(elem.is_displayed()))# 判断元素是否可用 :is_enabled()
print("元素是否可用:{}".format(elem.is_enabled()))# 元素是否被选中 :is_selected()
checkbox = driver.find_element_by_css_selector("input[type='checkbox']")
print("复选框是否被选中:{}".format(checkbox.is_selected()))
time.sleep(1)
checkbox.click()
print("取消后的复选框是否被选中:{}".format(checkbox.is_selected()))


http://www.ppmy.cn/server/6918.html

相关文章

Redis 逻辑过期策略设计思路

引言: 当我们平常使用Redis缓存的时候,会出现一种场景, redis的key到过期时间了,总是需要到数据库里面去查一遍数据再set回redis,这个时候如果数据库响应比较慢,那么就会造成用户等待,如果刚好…

Ubuntu 微调训练ChatGLM3大语言模型

Ubuntu 微调训练ChatGLM3大语言模型 LLaMA Factory 的 LoRA 微调提供了 3.7 倍的加速比,同时在广告文案生成任务上取得了更高的 Rouge 分数。结合 4 比特量化技术,LLaMA Factory 的 QLoRA 微调进一步降低了 GPU 显存消耗。 https://github.com/hiyouga…

算法学习——LeetCode力扣补充篇11(64. 最小路径和、48. 旋转图像 、169. 多数元素、394. 字符串解码、240. 搜索二维矩阵 II )

算法学习——LeetCode力扣补充篇11 64. 最小路径和 64. 最小路径和 - 力扣(LeetCode) 描述 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只…

【Java】HashMap、HashTable和ConcurrentHashMap的区别

文章目录 区别一、HashMap1.1基本定义与特性1.2工作原理与实现1.3常用方法1.4性能与优化 二、HashTable三、ConcurrentHashMap3.1基本特点3.2实现原理3.3常用方法3.4适用场景3.5性能优化 HashTable、HashMap和ConcurrentHashMap之间的区别主要体现在线程安全、继承关系与实现接…

论文笔记:Does Writing with Language Models Reduce Content Diversity?

iclr 2024 reviewer评分 566 1 intro 大模型正在迅速改变人们创造内容的方式 虽然基于LLM的写作助手有可能提高写作质量并增加作者的生产力,但它们也引入了算法单一文化——>论文旨在评估与LLM一起写作是否无意中降低了内容的多样性论文设计了一个控制实验&…

react中useState的值没有改变,而是旧的数值

问题背景 想实现点击按钮就改变数据的效果,但是在控制台的打印结果,总是上一次的修改情况,并不是最新的修改后的数据 代码: import { useState, useRef } from "react";// 实现sonA的数据传递给sonB const SonA () …

UE5 Prediction 预测

在介绍预测功能前,先问个问题,为啥要有这个功能? 这个功能是在网络游戏所需的,单机游戏不需要。网络游戏主要牵扯到一个网络交互的问题,客户端和服务器之间交互是有延迟的,如果将操作数据提交等待服务器返回…

Java -- (part15)

一.数学相关类 Math 1.概述:数学工具类 2.特点 a.构造私有 b.方法静态 3.使用:类名直接调用 4.方法 static int abs(int a)->求参数的绝对值 static double ceil(double a)->向上取整 static double floor(double a)->向下取整 static long round(double a…