自动化测试工具-Selenium:WebDriver的API/方法使用全解

我们上一篇文章介绍了Selenium的三大组件,其中介绍了WebDriver是最重要的组件。在这里,我们将看到WebDriver常用的API/方法(注:这里使用Python语言来进行演示)。

1. WebDriver创建

打开VSCode,我们首先引入webdriver:

from selenium import webdriver

引入了webdriver,我们就可以根据目标浏览器创建对应浏览器的webdriver类:

我们可以看到,webdriver支持多种浏览器,除此之外,还包括远程调用等功能,这里我们以操作目标为Edge浏览器为例子,来创建Edge的测试类:

我们可以看到,返回的是一个browser变量。我们来看browser支持哪些函数:

2. browser函数全解

browser的函数大致可以分为两大类,第一类是用于定位浏览器中的标签函数,第二类就是其他函数。

2.1 browser标签函数

新版本的Selenium使用了新的调用方式,首先我们引入By:

from selenium.webdriver.common.by import By

这样我们就可以调用了By,我们来查看By调用的参数是哪些: 

2.1.1 CLASS_NAME函数

使用方法:

driver.find_element(By.CLASS_NAME,"text-color")

他会找到class=“text-color”的标签,同时提供以下点击事件:

我们这里使用点击事件——click()。

我们模拟selenium打开百度搜索页面,同时点击关于百度这个标签,代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
import timedriver = webdriver.Edge()
driver.get("https://www.baidu.com")driver.find_element(By.CLASS_NAME,"text-color").click()time.sleep(10)driver.close()

点击运行,得到以下效果:

2.1.2 ID 函数

ID函数是Selenium给我们提供操作Web标签为对应ID的函数,这个函数很常用,使用方法如下:

driver.find_element(By.ID,"kw")

我们来一个编程示例,找到百度输入框,并点击搜索,输入框中输入信息为“selenium官网”。

那么我们需要先找到输入框的ID,我们打开检查:

我们可以看到,输入框对应的id名为kw。那么我们编写的程序如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
import timedriver = webdriver.Edge()
driver.get("https://www.baidu.com")driver.find_element(By.ID,"kw").send_keys("selenium官网")time.sleep(10)driver.close()

这里的send_keys的作用就是将“selenium官网”填入输入框并搜索。

程序运行的效果为:

2.1.3 TAG_NAME 函数

TAG_NAME函数用来指定标签名字,不能用来指定标签内的属性。最重要的一点,TAG_NAME指定的标签是唯一的,这个是必须的。

TAG_NAME的使用方法如下:

driver.find_element(By.TAG_NAME,'area')

我们举例,使用Selenium点击如下图标,预期效果会跳转到百度热搜:

编写的代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
import timedriver = webdriver.Edge()
driver.get("https://www.baidu.com")time.sleep(3)driver.find_element(By.TAG_NAME,'area').click()time.sleep(10)driver.close()

成功的效果:

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

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

相关文章

亚马逊关键词收录逻辑是什么?亚马逊关键词收录规则——站斧浏览器

亚马逊关键词收录逻辑是什么? 亚马逊收录系统是静态相关性和动态相关性的结合,也就是listing埋词与广告或其他非常规手段的干预。发生顺序及逻辑如下: 第一步:亚马逊首先会进行静态收录。通过SEO搜索引擎来识别卖家的产品链接&a…

《每天一分钟学习C语言·六》

1、 1字节(Byte)8位,1KB1024字节,1M1024KB,1G1024MB 2、 char ch A; printf(“ch %d\n”, ch);ch为65 这里是ASCII码转换 3、 scanf("%d", &i); //一般scanf直接加输入控制符 scanf("m%d&qu…

java练习题之多态练习

1:关于多态描述错误的是(D) A. 父类型的引用指向不同的子类对象 B. 用引用调用方法,只能调用引用中声明的方法 C. 如果子类覆盖了父类中方法,则调用子类覆盖后的方法 D. 子类对象类型会随着引用类型的改变而改变 2:class Super{ public void m1(){}…

Python 输入输出, 标识符, import(保留字关键字) ,注释 , 缩进

1 Python简介输入print()标识符import关键字保留字(关键字)注释缩进 Python简介 python是一门解释性语言 解释性语言的特点:它不像java c一样先编译后执行,它是直接每一行的去执行,所以遇见错误时,它会把错误之前的执行完 输入print() print() 是一个让计算机在屏幕上进行输…

微信小程序格创校园跑腿小程序源码v1.1.64+前端

简介: 版本号:1.1.64 – 多学校版本 本次更新内容: 订单问题修复 (无需上传小程序) 版本号:1.1.63 – 多学校版本 本次更新内容: 失物招领增加内容安全接口; 认证增加性别选…

如何选择出最适合的backbone模型?图像分类模型性能大摸底

到2023年图像分类backbone模型已经拓展到了几十个系列,而有的新算法还在采样vgg、resnet做backbone,比如2022年提出的GDIP-YOLO还在用VGG16做IA参数预测,那是在浪费计算资源并限制了模型性能的提升,应该将目光放到现在的最新模型中…

智能优化算法应用:基于野马算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于野马算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于野马算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.野马算法4.实验参数设定5.算法结果6.参考文献7.MA…

基于ssm高校学生管理系统论文

摘 要 使用旧方法对校园活动信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在校园活动信息的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。 这次开发的高校学生管理系…

UG扫掠命令

扫掠命令在下图位置: 扫掠的规则: 1、引导线必须光顺相切,不能有尖角 2、多个截面选择顺序不能颠倒(三个或以上截面的时候) 3、多个截面选择方向必须一致 4、多个截面必须节点对应 截面或引导线可以是开放或封闭的…

springMVC-自定义拦截器

一、先来看一个需求 Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,比如对临时文件的清除,或者对某些ip地址进行拦截器. 二、springMVC自定义拦截器介绍 (1)需要实现一个接口 HandlerInterceptor. (…

【Proteus仿真】【Arduino单片机】蓝牙遥控小车

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使LCD1602液晶,L298电机,直流电机,HC05/06蓝牙模块等。 主要功能: 系统运行后,LCD1602…

内网渗透基础

内网 内网指的是内部局域网,常说的LAN(local area network)。常见家庭wifi网络和小型的企业网络,通常内部计算机直接访问路由器设备,路由器设备接入移动电信的光纤实现上网。 内部局域网可以通过交换机/防火墙组成多个…

玩转 Scrapy 框架 (一):Scrapy 框架介绍及使用入门

目录 一、Scrapy 框架介绍二、Scrapy 入门 一、Scrapy 框架介绍 简介: Scrapy 是一个基于 Python 开发的爬虫框架,可以说它是当前 Python 爬虫生态中最流行的爬虫框架,该框架提供了非常多爬虫的相关组件,架构清晰,可扩…

Android开发——添加图片

1、首先选择一张需要的图片,通过左侧的Resource Manage选择“”并选择Import Drawables 选择一张图片 并调整以下两个内容 这两个内容的作用借用谷歌官方的Android开发教程的内容: *Android 设备具有不同的屏幕尺寸(手机、平板电脑和电视等…

【Java JMM】编译和优化

1 前端编译 在 Java 技术下, “编译期” 是一个比较含糊的表述, 因为它可能指的是 前端编译器 (“编译器的前端” 更准确一些) 把 *.java 文件转变成 *.class 文件的过程Java 虚拟机的即时编译器 (常称 JIT 编译器, Just In Time Compiler) 运行期把字节码转变成本地机器码的过…

【华为鸿蒙系统学习】- HarmonyOS4.0之App项目开发|自学篇

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 创建鸿蒙第一个App项目 项目创建 工程目录区 预览区 运行Hello World 基本工程目录 ws:工…

ROS-小海龟案例---ROS命令

ROS-小海龟案例—ROS命令 rosnoderos:节点管理命令,通过此命令可以查看、操作以及监测已经运行的ros节点: rosnode 命令 作用 rosnode list 列出当前运行的node信息 rosnode i…

Jmeter参数化 —— 循环断言多方法

1、参数化接口测试数据 注意:csv文档参数化,里面有多少条数据,就要在线程组里循环多少次,不然就只执行一次 2、添加配置元件-计数器 关于计数器: ①Starting Value:给定计数器的初始值; ②递增&#xff1a…

Java开发框架和中间件面试题(1)

1.什么是Spring框架? Spring是一种轻量级框架,旨在提高开发人员的开发效率以及系统的可维护性。 我们一般说的Spring框架就是Spring Framework,它是很多模块的集合,使用这些模块可以很方便的协助我们进行开发。这些模块是核心容器、数据访…

安卓手机如何打开ics文件?ics格式文件用什么软件打开?

什么是ics格式文件?Ics格式文件是什么呢?其实ics格式文件是一种用于保存和交换日历信息的标准格式,它通常可以保存事件的名称、时间等信息,有不少日历、待办软件在导出数据的时候,都是以ics文件导出的。 有不少网友目…