软件测试/测试开发丨Selenium Web自动化测试基本操作

点此获取更多相关资料

本文为霍格沃兹测试开发学社学员学习笔记分享
原文链接:https://ceshiren.com/t/topic/26901

一、浏览器控制

模拟功能测试中对浏览器的操作

1.1、打开网页

  • get方法打开浏览器
def open_browser():driver = webdriver.Chrome()driver.get("https://www.baidu.com/")time.sleep(1)

1.2、刷新

  • refresh方法刷新页面
# 刷新网页driver.refresh()

1.3、回退

  • 用back方法回退到上一个界面
    driver.back()

1.4、最大化

  • maximize_window方法使窗口最大化
    driver.maximize_window()

1.5、最小化

  • minimize_window方法使窗口最小化
    driver.minimize_window()

二、常见定位方法

2.1、HTML铺垫

  • 标签:<a>
  • 属性:href
  • 类属性: class

2.2、Selenium八大定位方式

Selenium提供了八种定位方式
Locator strategies | Selenium

序号方式描述
1class nameclass 属性对应的值
2css selector(重点)css 表达式
3id(重点)id 属性对应的值
4name(重点)name 属性对应的值
5link text查找其可见文本与搜索值匹配的锚元素
6partial link text查找其可见文本包含搜索值的锚元素。如果多个元素匹配,则只会选择第一个元素。
7tag name标签名称
8xpath(重点)xpath表达式

2.3、常用定位方式练习

示例,两种方式作用一模一样
官方建议使用下面的方式

driver.find_element_by_id("su")
driver.find_element(By.ID, "su")
def web_locate():driver = webdriver.Chrome()driver.implicitly_wait(3)driver.get("https://vip.ceshiren.com/#/ui_study")driver.find_element(By.ID, "openWindows")driver.quit()

三、常见交互方法

3.1、元素操作

  • 点击:click()
  • 输入:send_keys()
  • 清空:clear()
# 点击搜索框
driver.find_element(By.ID,"kw").click()
# 输入"霍格沃兹测试开发"
driver.find_element(By.ID,"kw").send_keys("霍格沃兹测试开发")
# 清空搜索框中信息
driver.find_element(By.ID,"kw").clear()

3.2、获取元素属性信息

  • 获取元素属性信息

  • 原因:

    • 定位到元素后,获取元素的文本信息,属性信息等
  • 目的:

    • 根据这些信息进行断言或者调试
  • 演练地址: 霍格沃兹测试开发

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

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

相关文章

VS + QT 封装带UI界面的DLL

一、创建编译DLL的项目 1.新建Qt Class Liabrary 2.新建项目&#xff0c;选择Qt Widgets Class 3.新建C类&#xff0c;可以在此类里面写算法函数用于调用。 4.下面是添加完Qt窗体类和C类之后的项目截图 5.修改头文件并编译 将uidemo_global.h中的ifdef内容复制到dialog.h上…

日志记录一

我们知道&#xff0c;当注释掉配置环境变量 export ……之后&#xff0c;需要source ……之后&#xff0c;修改内容才能生效&#xff1b;例如&#xff1a;将export的Java环境变量注释掉或者删除掉后&#xff0c; vi /etc/profile source /etc/profile 使之生效。 但是&#xf…

Docker:自定义镜像

&#xff08;总结自b站黑马程序员课程&#xff09; 环环相扣&#xff0c;跳过部分章节和知识点是不可取的。 一、镜像结构 镜像是分层结构&#xff0c;每一层称为一个Layer。 ①BaseImage层&#xff1a;包含基本的系统函数库、环境变量、文件系统。 ②Entrypoint&#xff1…

性能提升3-4倍!贝壳基于Flink + OceanBase的实时维表服务

作者介绍&#xff1a;肖赞&#xff0c;贝壳找房&#xff08;北京&#xff09;科技有限公司 OLAP 平台负责人&#xff0c;基础研发线大数据平台部架构师。 贝壳找房是中国最大的居住服务平台。作为居住产业数字化服务平台&#xff0c;贝壳致力于推进居住服务的产业数字化、智能…

二叉查找树(binary search tree)(难度7)

C数据结构与算法实现&#xff08;目录&#xff09; 答案在此&#xff1a;二叉查找树&#xff08;binary search tree&#xff09;&#xff08;答案&#xff09; 写在前面 部分内容参《算法导论》 基本接口实现 1 删除 删除值为value的第一个节点 删除叶子节点1 删除叶子节…

基于Android的旅游管理系统 微信小程序

随着网络科技的发展&#xff0c;移动智能终端逐渐走进人们的视线&#xff0c;相关应用越来越广泛&#xff0c;并在人们的日常生活中扮演着越来越重要的角色。因此&#xff0c;关键应用程序的开发成为影响移动智能终端普及的重要因素&#xff0c;设计并开发实用、方便的应用程序…

mysql中间件Atlas

Mysql 的 proxy 中间件有比较多的工具&#xff0c;例如&#xff0c;mysql-proxy(官方提供), atlas , cobar, mycat, tddl, tinnydbrouter等等。 ​ 而Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Pro…

2023年高教社杯数学建模思路 - 案例:感知机原理剖析及实现

文章目录 1 感知机的直观理解2 感知机的数学角度3 代码实现 4 建模资料 # 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 感知机的直观理解 感知机应该属于机器学习算法中最简单的一种算法&#xff0c;其…

实现无公网IP环境下远程访问本地Jupyter Notebook服务的方法及端口映射

文章目录 前言1. Python环境安装2. Jupyter 安装3. 启动Jupyter Notebook4. 远程访问4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5. 固定公网地址 前言 Jupyter Notebook&#xff0c;它是一个交互式的数据科学和计算环境&#xff0c;支持多种编程语言&#xff0c;如…

JDBC连接数据库

目录 一.什么是JDBC 二.JDBC的实现步骤 三.简单使用JDBC 一.什么是JDBC JDBC是Java数据库连接&#xff0c;是java中提供数据库访问的Java API,它为关系型数据库的提供了统一访问规范。 二.JDBC的实现步骤 1.创建数据库连接 这里有两种方式: DataSource创建&#xff0c;提…

VSCode之C++ CUDA极简环境配置

背景 想要了解CUDA并行计算原理&#xff0c;同时针对深度学习中出现一些“不支持算子”可能需要手写的需要&#xff0c;配置一个简单的CUDA编译环境&#xff0c;探索CUDA编程的范式【注&#xff1a;CUDA环境配置略】。结果展示 示例代码 #include "cuda_runtime.h" …

自己动手写数据库:实现一个小型 SQL 解释器(下)

本节我们完成 SQL 解释器的最后一部分&#xff0c;它涉及到数据的删除和更改&#xff0c;首先我们看删除语句的解析。我们先看 delete 对应的语法&#xff1a; Delete -> DELETE FROM ID (where Predicate)?从语法规则可以看出&#xff0c;delete 语句必须以关键字 DELETE…

C++ STL set容器使用教程

文章目录 引用头文件初始化赋值遍历 set 容器1. 迭代器遍历2. auto3. range for循环4. for_each 迭代器vector 常用方法返回 set 长度插入元素删除元素 set 为关联式容器&#xff0c;翻译为集合&#xff0c;其中的元素类型为 pair&#xff0c;需要注意 set 容器存储的各个键值对…

Docker学习笔记(持续更新)

Docker学习目录 1.基础1.1 Docker简介1.1.1 Why Docker&#xff1f;1.1.2 Docker理念1.1.3 容器与虚拟机1.1.4 Docker能做什么&#xff1f; 1.2 Docker的基本组成1.2.1 Docker的三要素1.2.2 Docker平台架构 1.基础 1.1 Docker简介 1.1.1 Why Docker&#xff1f; 在个人笔记本…

Ramp 有点意思的题目

粗一看都不知道这个要干什么&#xff0c;这 B 装得不错。 IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwoKJycnCktlZXAgdXMgb3V0IG9mIGdvb2dsZSBzZWFyY2ggcmVzdWx0cy4uCgokIG9kIC1kIC9kZXYvdXJhbmRvbSB8IGhlYWQKMDAwMDAwMCAgICAgNjAyMTUgICAyODc3OCAgIDI5MjI3ICAgMjg1NDggICA2MjY4NiAgIDQ1MT…

无涯教程-Android - 应用组件

应用程序组件是Android应用程序的基本组成部分&#xff0c;这些组件需要在应用程序清单文件 AndroidManifest.xml 注册&#xff0c;该文件描述了应用程序的每个组件以及它们如何交互。 Android应用程序可以使用以下四个主要组件- Sr.NoComponents & 描述1 Activities 它们…

【网络通信 -- WebRTC】项目实战记录 -- linux 环境下 libmediasoup 编译与测试

【网络通信 -- WebRTC】项目实战记录 -- linux 环境下 libmediasoup 编译与测试 【1】编译配置 libwebrtc 【1.1】下载并配置 depot_tools 下载 depot_tools git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git编辑 ~/.bashrc 将 depot_tools 添加…

【8 排序】简单选择排序。

顺序表&#xff1a; void Swap(int &a,int &b){int temp;tempa;ab;btemp; } void SelectSort(int A[],int n){int min,i,j;for(i0;i<n-1;i){mini;for(ji1;j<n;j)if(A[j]<A[min])minj;if(min!i)Swap(A[i],A[min]);} } 单链表&#xff1a; void SelectSort…

JVM 对象引用类型

对象引用类型 对象引用类型分为强引用、软引用、弱引用和虚引用。 强引用 声明对象时虚拟机生成的引用&#xff0c;是指在程序代码之中普遍存在的引用赋值。强引用环境下&#xff0c;垃圾回收时需要严格判断当前对象是否被强引用&#xff0c;如果被强引用&#xff0c;…

中科驭数以DPU先进计算技术,夯实下一代金融IT基础设施底座

由中国计算机学会主办的第19届CCF全国高性能计算学术年会&#xff08;CCF HPC China 2023&#xff09;于8月23日至26日在青岛成功召开。在“高性能金融计算”主题论坛上&#xff0c;中科驭数高级副总裁、CTO卢文岩应邀发表了题为《DPU先进计算技术助力下一代交易底座》的演讲&a…