软件测试|使用selenium处理单选框和多选框

news2024/11/18 21:25:04

简介

我们在web自动化测试工作中,经常会遇到对单选框(Radio Buttons)或者多选框(Checkboxes)进行操作的场景,单选框和多选框主要是用于我们做出选择或提交数据。本文将主要介绍selenium对于单选框和多选框的操作。

处理单选框

单选框允许用户从多个选项中选择一个选项。使用Selenium,我们可以模拟用户在单选框上的选择。页面代码如下:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
</head>
<body>
<fieldset>
<legend>单选按钮radio</legend>
<form action="">
    <label for=""><input type="radio" name="car" value="volkswagen" id="passat">帕萨特</label>
    <label for=""><input type="radio" name="car" value="toyota" id="camry">凯美瑞</label>
    <label for=""><input type="radio" name="car" value="benz" id="c200">奔驰C级</label>
    <label for=""><input type="radio" name="car" value="bmw" id="325i" checked="">宝马3系</label>
    <label for=""><input type="radio" name="car" value="honda" id="accord" disabled="" >雅阁</label>
</form>
</fieldset>
</body>
</html>

下面是我们处理单选框的示例,代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By

# 设置WebDriver路径
driver = webdriver.Chrome()

# 打开一个示例网页
driver.get("https://example.com/radio-buttons")

# 找到单选框元素
radio_button = driver.find_element(By.ID, "option2")

# 检查单选框是否被选中,如果没有选中,则选择它
if not radio_button.is_selected():
    radio_button.click()

# 关闭浏览器
driver.quit()

处理多选框

多选框即表示我们可以从多个选项中选择多个选项。通过selenium,我们可以模拟用户对多选框的选择操作。示例多选框页面代码如下:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
</head>
<body>
<br>
<fieldset>
<legend>多选按钮checkbox</legend>
<form action="">
    <input type="checkbox" name="checkbox" value="汽车" id="qc">汽车<br>
    <input type="checkbox" name="checkbox" value="购物" id="gw">购物<br>
    <input type="checkbox" name="checkbox" value="旅游" id="ly" readonly="">旅游 <br>
    <input type="checkbox" name="checkbox" value="音乐" id="yy" disabled="">音乐 <br>
</form>
</fieldset>
</body>
</html>

要处理这个多选框,我们的示例代码如下:

# 1.导入selenium
from selenium import webdriver
from time import sleep
import os
from selenium.webdriver.common.by import By

# 2.打开浏览器
driver = webdriver.Chrome()

# 3.打开页面
url = "file:///" + os.path.abspath("./1.html")
driver.get(url)
sleep(2)

# 4. 选择部分多选框
# 建立列表填写将要选择的复选框名称
box_list = ["购物", "旅游"]

# 定位所有的复选框
checkboxes = driver.find_elements(By.NAME, "checkbox")

# 遍历选择
for checkbox in checkboxes:
    # 判断获取到的复选框的名称和在需求勾选的复选框中
    if checkbox.get_attribute("value") in box_list:
        # 如果在,判断选框是否被选中
        if checkbox.is_selected():
            pass
        else:
            # 单击一下,让单选按钮进入选中状态
            checkbox.click()
            sleep(1)

总结

本文主要介绍了selenium对于单选框和多选框的处理,希望本文能够帮助到大家!

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

嵌入式新人要坚持嵌入式吗?

今日话题&#xff0c;嵌入式新人要坚持嵌入式吗?这问题让我想起了我大学时学习嵌入式的经历。当时&#xff0c;学校还发了一些开发板&#xff0c;可惜我自己的学习进展不顺利&#xff0c;最终我决定转向了纯软件开发领域。但是&#xff0c;我大学时有一个同学&#xff0c;他一…

Flink启动Yarn Session报错:Couldn‘t deploy Yarn session cluster

Flink版本&#xff1a;1.1.3 启动Yarn Session的语句&#xff1a;bin/yarn-session.sh -nm test -d 报错截图如下&#xff1a; 仅通过ERROR信息只能知道是yarn session集群未能正常启动&#xff0c;因此继续向下查找&#xff1a; 找到报错信息的Caused by部分&#xff1a; 报…

网络原理--http

目录 一、 DNS&#xff08;应用层协议&#xff09; 1、域名概念 2、维护ip地址和域名之间的映射&#xff08;域名解析系统&#xff09; 3、DNS系统&#xff08;服务器&#xff09; 4、如何解决DNS服务器高并发问题 二、HTTP&#xff08;应用层协议&#xff09; 1、htt…

觉得做文档不被重视?来看看你未来的可能性

▲ 搜索“大龙谈智能内容”关注公众号▲ 在《2023中国技术传播行业调研报告》中&#xff0c;“从业者心中的痛”这项调研的统计如下图。 其中&#xff0c;“企业内高层不够重视”排在第一位。 图1 - “从业者心中的痛”统计 对于行业的发展趋势&#xff0c;大家是这样看的…

海外代理IP怎么用?常见使用问题及解决方案

海外代理IP是指提供全球范围内的代理服务器&#xff0c;代理服务器充当IP与目标网站之间的中介&#xff0c;可以起到安全匿名、提高网速、突破网络壁垒的作用。在使用代理IP的过程中&#xff0c;用户可能会遇到各种挑战&#xff0c;如连接问题、速度慢等。理解这些问题的原因并…

计算机导论06-人机交互

人机交互基础 人机交互概述 人机交互及其发展 人机交互是指人与计算机之间&#xff0c;使用某种对话语言&#xff0c;以一定的交互方式&#xff0c;为完成确定任务的信息交换过程。 从计算机的诞生之日起&#xff0c;人机交互技术的发展已经历了以下阶段&#xff1a; 早期的…

Linux 有哪些搜索方式?5分钟带你搞懂!

5分钟带你掌握 Linux 的三种搜索方式 前言 1.find 命令 find 命令是用来在给定的目录下查找符合给定条件的文件 语法格式&#xff1a;find [查找起始路径] [查找条件] [处理动作] &#xff08;1&#xff09;根据名称查找&#xff1a;find [查找起始路径] -name 文件名 或者…

开源云真机平台-Sonic平台-python自定义脚本-config.ini方式实现全局配置参数的读写操作

【主要功能】 config.ini方式实现全局配置参数的读写操作 使用python实现以下功能&#xff1a; 1、使用将接口获取的变量值&#xff0c;写入到当前目录下的config文件中&#xff0c;如delayTime10&#xff1b; 2、读取当前目录下的config文件中&#xff0c;特定变量的值&…

【Java】equals和hashCode需要一起重写的原因

方法实现&#xff1a; equals和hashCode两个方法是属于Object基类的两个方法&#xff0c;我们先来看看两个方法的默认实现。 equals方法&#xff1a; public boolean equals(Object obj) {return (this obj);} 可以看到equals方法的默认实现是使用 比较两个对象&#xff0c…

Selenium使用指南(超详细)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 概述 selenium是网页应用中最流行的自动化测试工具&#xff0c…

Kafka-生产者

Kafka在实际应用中&#xff0c;经常被用作高性能、可扩展的消息中间件。 Kafka自定义了一套网络协议&#xff0c;只要遵守这套协议的格式&#xff0c;就可以向Kafka发送消息&#xff0c;也可以从Kafka中拉取消息。 在实践生产过程中&#xff0c;一套API封装良好、灵活易用的客…

C语言——详解字符函数和字符串数组(上)

目录 一、strlen的使用和模拟实现 1.strlen()函数的介绍 2.strlen()函数的具体使用 3.strlen函数的注意事项 4.strlen函数的模拟实现 二、strcpy的使用和模拟实现 1.strcpy()函数的介绍 2.strcpy()函数的具体使用 3.strcpy()函数的注意事项 4.strcpy函数的模拟实现 …

js逆向第19例:猿人学第17题天杀的Http2.0

文章目录 一、前言二、定位关键参数三、代码实现四、参考文献一、前言 任务十七:抓取这5页的数字,计算加和并提交结果 题目已经给出来标准答案,而且此题设置为“非常简单”其关键就是HTTP/2.0请求,打开控制台查看请求接口数据如下: 二、定位关键参数 可以看到控制台显示…

计算机毕业设计-----SSH学生请假管理系统

项目介绍 本项目分为管理员、教师、学生三种角色&#xff1b; 教师角色包含以下功能&#xff1a; 教师角色登录,请假查看,审批学生请假,学生管理等功能。 管理员角色包含以下功能&#xff1a; 班级管理,班主任管理,公告管理,留言板管理,学生管理等功能。 学生角色包含以下…

MySQL 中有关 NULL 的三个坑

mysql sum 函数、count 函数&#xff0c;以及 NULL 值条件可能踩的坑。 SELECT SUM(score) FROM person ; nullSELECT COUNT(score) FROM person; 0select id from person where scoreNULL; null 显然&#xff0c;这三条 SQL 语句的执行结果和我们的期望不同&#xf…

一篇文章带你搞懂---全排序

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 全排序&#xff08;Permutation&#xff09;是指将一组元素按照一定的顺序进行排列的过程。在计算机科学中&#xff0c;全排序是一…

Centos系统安全设置

1 设置密码复杂度&#xff0c;帐号密码有效期3个月 密码复杂度要求&#xff1a;最小长度8位&#xff0c;至少2位大写字母&#xff0c;1位小写字母&#xff0c;4位数字&#xff0c;1位特殊字符 1&#xff09;执行备份&#xff1a; #cp -p /etc/login.defs /etc/login.defs_bak…

zotero使用gpt

zotero使用gpt 下载 zotero下载&#xff1a;https://www.zotero.org/download/ 插件下载&#xff1a;https://github.com/MuiseDestiny/zotero-gpt?tabreadme-ov-file 插件安装 zotero中选择 工具->添加组件 选择右上角的齿轮&#xff0c;选择Install add-on from fil…

c++继承和派生(1)

目录 1.含义&#xff1a;从不同层面看的&#xff0c;同一种意思 2. 继承的使用场景 1. 共同之处 2. 迭代更新 3. 代码重构 3. 继承的基本语法 4. 继承了什么 1. 查看占用内存大小 2. 使用vs自带的功能查看类的内存分布 布局&#xff1a; 3. 结果 5. pr…

软件测试|使用Python提取出语句中的人名

简介 在自然语言处理&#xff08;NLP&#xff09;中&#xff0c;提取文本中的人名是一项常见的任务。Python作为一种流行的编程语言&#xff0c;拥有强大的NLP库和工具&#xff0c;使我们能够轻松地进行这项任务。在本文中&#xff0c;我们将使用Python示例来演示如何提取文本…