【Selenium学习】Selenium 中常用的基本方法

news2024/11/23 21:16:23

1.send_keys 方法模拟键盘键入

此方法类似于模拟键盘键入。以在百度首页搜索框输入“Selenium”为例,代码如下:

# _*_ coding:utf-8 _*_
"""
name:zhangxingzai
date:2023/2/13
form:《Selenium 3+Python 3自动化测试项目实战》
"""

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

driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 通过id,在搜索输入框中输入文本“Selenium”
driver.find_element(By.ID, 'kw').send_keys('Selenium')

2.text 方法获取文本值

Selenium 提供了 text 方法用于获取文本值,即 HTML 标签“<a></a>”之间的文字。以在

百度首页超链接“新闻”为例,代码如下:

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

driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 通过link_text定位,点击‘新闻’超链接
driver.find_element(By.LINK_TEXT, '新闻').click()

3.get_attribute()获取属性值

以百度首页的“百度一下”按钮为例,获取属性 value 对应的值(页面元素如图所示),

可以用 get_attribute 方法来实现。

代码如下:

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

driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 执行后,控制台打印“百度一下”
print(driver.find_element(By.ID, 'su').get_attribute('value'))

输出结果为:

4.set_window_size()方法控制浏览器窗口大小

from selenium import webdriver

driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 参数数字为像素
print("设置浏览器宽 480、高 500 显示")
driver.set_window_size(480, 500)

5.maximize_window() 方法控制浏览器窗口最大化

from selenium import webdriver

driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 参数数字为像素
print("设置浏览器宽 480、高 500 显示")
driver.set_window_size(480, 500)
# 将窗口最大化
driver.maximize_window()

6.控制浏览器后退、前进

在使用 Web 浏览器浏览网页时,浏览器提供了后退和前进按钮,可以方便地在浏览过

的网页之间切换,WebDriver 还提供了对应的 back()和 forward()方法来模拟后退和前进按

钮。下面通过例子演示这两个方法的使用。

from selenium import webdriver

driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 访问百度首页
first_url = 'http://www.baidu.com'
print("now access %s" %(first_url))
driver.get(first_url)
# 访问新闻页
second_url='http://news.baidu.com'
print("now access %s" %(second_url))
driver.get(second_url)
# 返回(后退)到百度首页
print("back to %s " %(first_url))
driver.back()
# 前进到新闻页
print("forward to %s" %(second_url))
driver.forward()

为了看清楚脚本的执行过程,这里每操作一步都通过 print()打印当前的 URL 地址。

7.refresh()方法模拟浏览器刷新

from selenium import webdriver

driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
#刷新当前页面
driver.refresh()

8.submit():提交表单。

有些搜索框不提供搜索按钮,而是通过按键盘上的回车键完成搜索内容的提交,这时可以通过 submit()模拟。

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

driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 搜索框输入‘python’
driver.find_element(By.ID, 'kw').send_keys('python')
# 提交表单
driver.find_element(By.ID, 'kw').submit()

9.clear() 清除输入框值

以在百度搜索框输入“python”,再清除为例,示例代码如下:

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

driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 搜索框输入‘python’
driver.find_element(By.ID, 'kw').send_keys('python')
# 清除内容
driver.find_element(By.ID, 'kw').clear()

10.close()关闭当前窗口

from selenium import webdriver

driver = webdriver.Firefox()
# 打开百度
driver.get('https://www.baidu.com/')
# 关闭浏览器
driver.close()

quit()也是关闭浏览器,但是是退出驱动程序并关闭所有相关窗口

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

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

相关文章

React Native(一)

移动端触摸事件example1:<ButtononPress{() > {Alert.alert(你点击了按钮&#xff01;);}}title"点我&#xff01;" />Touchable 系列组件TouchableHighlight 此组件的背景会在用户手指按下时变暗TouchableNativeFeedback 会在用户手指按下时形成类似墨水涟…

Java基础常见面试题(四)

反射 什么是反射&#xff1f; 反射是在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&#xff1b;对于任意一个对象&#xff0c;都能够调用它的任意一个方法和属性&#xff1b;这种动态获取的信息以及动态调用对象的方法的功能称为 Jav…

大数据技术架构(组件)34——Spark:Spark SQL--Optimize

2.2.3、Optimize2.2.3.1、SQL3.3.1.1、RB1、Join选择在Hadoop中&#xff0c;MR使用DistributedCache来实现mapJoin。即将小文件存放到DistributedCache中&#xff0c;然后分发到各个Task上&#xff0c;并加载到内存中&#xff0c;类似于Map结构&#xff0c;然后借助于Mapper的迭…

【半监督医学图像分割 2021 CVPR】CVRL

文章目录【半监督医学图像分割 2021 CVPR】CVRL摘要1. 介绍1.1 总览1.2 无监督对比学习2. 实验3. 总结【半监督医学图像分割 2021 CVPR】CVRL 论文题目&#xff1a;Momentum Contrastive Voxel-wise Representation Learning for Semi-supervised Volumetric Medical Image Seg…

ThinkPHP多语言模块文件包含RCE复现详细教程

免责声明 本文章只用于技术交流&#xff0c;若使用本文章提供的技术信息进行非法操作&#xff0c;后果均由使用者本人负责。 漏洞描述&#xff1a; ThinkPHP在开启多语言功能的情况下存在文件包含漏洞&#xff0c;攻击者可以通过get、header、cookie等位置传入参数&#xff…

Transformer机制学习笔记

学习自https://www.bilibili.com/video/BV1J441137V6 RNN&#xff0c;CNN网络的缺点 难以平行化处理&#xff0c;比如我们要算b4b^4b4&#xff0c;我们需要一次将a1a^1a1~a4a^4a4依次进行放入网络中进行计算。 于是有人提出用CNN代替RNN 三角形表示输入&#xff0c;b1b^1b1的…

【数据结构】算法的复杂度分析:让你拥有未卜先知的能力

&#x1f451;专栏内容&#xff1a;数据结构⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;日拱一卒&#xff0c;功不唐捐 文章目录一、前言二、时间复杂度1、定义2、大O的渐进表示法3、常见的时间复杂度三、空间复杂度1、定义2、常见的空间复杂度一、前…

微信小程序删除list指定列表项

一、删除效果展示&#xff1a; // 重要代码片段async deleteListItem(e) {const sureResult await wx.showModal({title: "提示",content: "确定要删除这项吗",});if (sureResult.confirm) {const { index } e.currentTarget.dataset;setTimeout(()>{…

Centos7安装kvm WEB管理工具kimchi

参考&#xff1a;虚拟化技术之kvm WEB管理工具kimchi一、kimchi安装1.1 下载wok安装包和kimchi安装包# 1. wok下载地址&#xff1a; wget https://github.com/kimchi-project/kimchi/releases/download/2.5.0/wok-2.5.0-0.el7.centos.noarch.rpm # 2. kimchi下载地址&#xff1…

Springmvc补充配置

Controller配置总结 控制器通常通过接口定义或注解定义两种方法实现 在用接口定义写控制器时&#xff0c;需要去Spring配置文件中注册请求的bean;name对应请求路径&#xff0c;class对应处理请求的类。 <bean id"/hello" class"com.demo.Controller.HelloCo…

【Spark分布式内存计算框架——Spark SQL】2. SparkSQL 概述(上)

第二章 SparkSQL 概述 Spark SQL允许开发人员直接处理RDD&#xff0c;同时可以查询在Hive上存储的外部数据。Spark SQL的一个重要特点就是能够统一处理关系表和RDD&#xff0c;使得开发人员可以轻松的使用SQL命令进行外部查询&#xff0c;同时进行更加复杂的数据分析。 2.1 前…

蓝桥杯模块学习16——PCF8591(深夜学习——单片机)

一、硬件电路&#xff1a;1、蓝桥杯板子上的电路&#xff1a;&#xff08;1&#xff09;AIN0-3&#xff1a;四种模拟量的输入口&#xff0c;AIN1为光敏电阻控制电压输入&#xff0c;AIN3为电位器控制电压输入&#xff08;2&#xff09;A0-2&#xff1a;决定设备的地址码&#x…

SSTI漏洞原理及渗透测试

模板引擎&#xff08;Web开发中&#xff09; 是为了使 用户界面 和 业务数据&#xff08;内容&#xff09;分离而产生的&#xff0c;它可以生成特定格式的文档&#xff0c; 利用模板引擎来生成前端的HTML代码&#xff0c;模板引擎会提供一套生成HTML代码的程序&#xff0c;之后…

TensorRT的Python接口解析

TensorRT的Python接口解析 文章目录TensorRT的Python接口解析4.1. The Build Phase4.1.1. Creating a Network Definition in Python4.1.2. Importing a Model using the ONNX Parser4.1.3. Building an Engine4.2. Deserializing a Plan4.3. Performing Inference点此链接加入…

科技巨头争相入局,卫星通信领域将迎来怎样的发展?

近年来&#xff0c;全球卫星通信产业进入了一个高速发展的阶段。与卫星通信相关的新技术和新应用不断出现&#xff0c;成为了媒体报道的热点&#xff0c;也引起了公众的广泛关注。尤其是刚刚过去的2022年&#xff0c;华为和苹果公司分别发布了搭载卫星通信技术的手机&#xff0…

万丈高楼平地起:Linux常用命令

目录 系统管理命令 man命令 ls命令 cd命令 useradd命令 passwd命令 free命令 whoami命令 ps命令 date命令 pwd命令 shutdown命令 文件目录管理命令 touch命令 cat命令 mkdir命令 rm命令 cp命令 mv命令 find命令 more指令 less指令 head指令 tail指令 …

基于HTML实现浪漫情人节表白代码(附源代码)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

【spark】第三章——SparkSQL

文章目录1. SparkSQL 概述1.1 SparkSQL 是什么1.2 Hive and SparkSQL1.3 SparkSQL 特点1.3.1 易整合1.3.2 统一的数据访问1.3.3 兼容 Hive1.3.4 标准数据连接1.4 DataFrame 是什么1.5 DataSet 是什么2. SparkSQL 核心编程2.1 新的起点2.2 DataFrame2.2.1 创建 DataFrame2.2.2 S…

MVC架构 —— 理解 Dao 层和 Service 层

MVC 框架念叨了千百遍&#xff0c;但是对于它的理解还是停留在概念上。 作为一种经典架构设计典范&#xff0c;MVC 在日新月异的软件行业却能常青数十年&#xff0c;一定有其独特的魅力。 一、Dao 层和 Service 层的概念 Dao 是 Data Access Object &#xff08;数据访问对象&…

FPGA纯verilog实现任意分辨率视频输出显示,高度贴近真实项目,提供工程源码和技术支持

目录1、前言2、视频显示的VESA协议3、VESA协议的bug4、FPGA实现任意分辨率视频输出显示5、FDMA实现数据缓存6、vivado工程详解7、上板调试验证并演示8、福利&#xff1a;工程代码的获取1、前言 本设计使用纯Verilog代码实现&#xff0c;重点在于基于AXI协议的DDR控制器的运用&…