python使用selenium操作浏览器的教程

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取

重复的操作令手工测试苦不堪言,于是自动化测试出现了!

作为web应用里最出名的自动化测试工具,selenium让web应用的测试轻松了很多。

今天我们就来简单的介绍一下一些简单的selenium浏览器操作。

接下来我们就来看看python怎么操作浏览器的吧!

1、打开指定的网页地址

我们使用selenium进行自动化测试时,打开浏览器之后,第一步就是让浏览器访问我们指定的地址,可使用get方法实现

from selenium import webdriver
driver = webdriver.Edge()
driver.get('https://www.baidu.com/')   # 本行用于访问指定的地址

2、获取当前页面url

我们在测试过程中,有时需要获取当前页面的url以判断是否跳转到指定页面,获取页面url的方法如下:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from selenium import webdriver
driver = webdriver.Edge()
driver.get('https://www.baidu.com/')
url = driver.current_url    # 本行用于获取当前页面的url,即百度首页地址
print(url)

3、返回按钮

返回按钮,也就是浏览器左上角的 ← 键,模拟点击此按钮操作如下

driver.back()

如,在百度搜索框中输入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.ID, 'kw').send_keys('selenium')  #搜索框输入selenium
driver.find_element(By.ID, 'su').click()     # 点击百度一下
time.sleep(3)
driver.back()  # 返回

本段代码表示在输入框中输入selenium后,再点击百度一下进行搜索,3秒后再返回百度首页

4、前进按钮

前进按钮,相对于后退的 ← ,是浏览器左上角的 → 按钮 ,操作此按钮方法如下:

driver.forward()

如,在百度搜索框中输入selenium并点击搜索,然后点击返回按钮后再点击前进按钮,实现如下

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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')  #搜索框输入selenium
driver.find_element(By.ID, 'su').click()     # 点击百度一下
driver.back()   # 返回
time.sleep(3)
driver.forward()  # 前进

本段代码表示在输入框中输入selenium后,再点击百度一下进行搜索,然后返回操作,

3秒后再进行前进操作,最终停留在输入selenium之后执行搜索的结果页面

5、刷新页面

测试过程中,刷新页面是经常使用的操作,selenium进行刷新操作方法如下

driver.refresh()

使用此方法类似于按下F5或点击左上角的刷新按钮

from selenium import webdriverdriver = webdriver.Edge()
driver.get('https://www.baidu.com/')
driver.refresh()    # 刷新页面

本段代码表示打开百度首页并刷新页面

6、获取当前页面title

测试过程中,可以使用selenium获取当前页面的title,方法如下:

driver.title

使用selenium获取百度首页的title,示例如下:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from selenium import webdriverdriver = webdriver.Edge()
driver.get('https://www.baidu.com/')
title = driver.title  # 获取当前页面title
print(title)

以上代码运行后,将在控制台输出百度首页的title 百度一下,你就知道

7、窗口大小操作

常用的窗口操作有设置窗口大小、最大化窗口、最小化窗口、全屏窗口

① 设置窗口大小

driver.set_window_size(1920, 1080)

② 最大化窗口

driver.maximize_window()

③ 最小化窗口

driver.minimize_window()

最小化窗口是selenium4的新功能,selenium3不能使用此方法

④ 全屏窗口,相当于大多数浏览器中按下F11

driver.fullscreen_window()

示例代码:

from selenium import webdriverdriver = webdriver.Edge()
driver.get('https://www.baidu.com/')
driver.set_window_size(1920, 1080)   # 设置窗口大小 1920*1080
driver.minimize_window()  # 最小化窗口
driver.maximize_window()  # 最大化窗口
driver.fullscreen_window() # 全屏窗口

本段代码打开百度首页后,先将浏览器窗口大小设置为1920*1080,

然后依次最小化窗口、最大化窗口、全屏窗口,实际进行测试时,需要根据需要进行设置

8、退出

测试执行完成后,需要退出浏览器,否则多次运行测试会导致系统残留大量的驱动进程,

这些进程会消耗计算机资源,导致系统越来越卡,所以养成测试完成后关闭浏览器是个良好习惯

退出浏览器操作如下:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from selenium import webdriver
from selenium.webdriver.common.by import Bydriver = webdriver.Edge()
driver.get('https://www.baidu.com/')
driver.find_element(By.ID, 'kw').send_keys('selenium')  #搜索框输入selenium
driver.find_element(By.ID, 'su').click()     # 点击百度一下
driver.quit()     # 退出浏览器

本段代码表示打开百度首页,再输入框中 输入selenium后点击百度一下,完成搜索后退出浏览器

尾语

最后感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

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

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

相关文章

Unity之地形的构建

PS:公司没活干,好无聊偷偷摸鱼学Unity,害怕自己学完之后忘记,写下这一篇博客 先来看一下效果图:有山有水有树有草地 创建一个新的Unity3D项目 这里要用到Unity官方的免费资源包(现在好像已经下架了百度网盘…

芯课堂 | LVGL基础知识(二)

引言 在 LVGL 中,用户界面的基本构建块是对象,也称为小部件(widget)。默认情况下,LVGL在背景上绘制旧对象,在前景上绘制新对象。 对象层级(Layers) 创建对象层级顺序 默认情况下,LVGL在背景上绘制旧对象&#xff0c…

redis重启后数据丢失问题解决(亲测好用)

redis修改密码重启后发现redis中的数据丢失了 解决办法: 首先在redis的安装目录下查找重启之前的dump.rdb文件,发现只有当天的一个dump.rdb文件,确认不是重启备份的文件 然后我就全盘找一下dump.rdb的备份文件,找到前一天的备份…

机器学习中的监督学习基本算法-逻辑回归简单介绍

逻辑回归 逻辑回归(Logistic Regression)是一种用于解决二分类问题的统计学习方法,尽管名字中带有"回归"一词,但实际上它是一种分类算法。逻辑回归的主要目标是通过学习从输入特征到一个离散的输出(通常是0…

前端技术-调试工具(上)

页面制作之调试工具 常用的调试工具有Chrome浏览器的调试工具,火狐浏览器的Firebug插件调试工具,IE的开发人员工具等。它们的功能与使用方法大致相似。Chrome浏览器简洁快速,功能强大这里主要介绍Chrome浏览器的调试工具。 打开 Google Chrom…

【BIAI】Lecture2-Visual system

Lecture 2 - Visual System 专业术语 central nervous system(CNS) 中枢神经系统 pupil 瞳孔 iris 虹膜 cornea 角膜 retina 视网膜 fovea 中央凹 或 黄斑区 kens 晶状体 optic nerve 视神经 Bipolar cells 双极细胞 Ganglion cells 神经节细胞 rods 杆状细胞 cones 锥状细胞 …

视频格式网络地址转换视频到本地,获取封面、时长,其他格式转换成mp4

使用ffmpeg软件转换网络视频,先从官网下载对应操作系统环境的包 注意:网络地址需要是视频格式结尾,例如.mp4,.flv 等 官网地址:Download FFmpeg window包: linux包: 如果下载缓慢,下载迅雷安装使用…

imgaug库指南(一):从入门到精通的【图像增强】之旅

文章目录 引言imgaug简介安装和导入imgaug代码示例imgaug的强大之处和用途小结结尾 引言 在深度学习和计算机视觉的世界里,数据是模型训练的基石,其质量与数量直接影响着模型的性能。然而,获取大量高质量的标注数据往往需要耗费大量的时间和…

清风数学建模笔记-多分类-fisher线性判别分析

内容:Fisher线性判别分析 一.介绍: 1.给定的训练姐,设法投影到一维的直线上,使得同类样例的投影点尽可能接近和密集,异类投影点尽可能远离。 2.如何同类尽可能接近:方差越小 3.如何异类尽可能远离&#…

AI:111-基于深度学习的工业设备状态监测

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

122基于matlab的CSO-SVM,BA-SVM模式识别模型

基于matlab的CSO-SVM,BA-SVM模式识别模型。优化SVM的两个参数晚上最佳参数确定。输出分类识别结果和准确率。数据可更换自己的,程序已调通,可直接运行。 122鸡群优化算法蝙蝠优化算法 (xiaohongshu.com)

关于设计模式的一点总结

一、GoF 23种设计模式 1.分类 GoF 23种设计模式可分为几类:创建型、结构型和行为型。如下表 分类设计模式创建型单例模式、工厂方法模式、抽象工厂模式、原型模式、建造者模式结构型代理模式、适配器模式、装饰者模式、桥接模式、组合模式、门面模式、享元模式行…

使用Python做个可视化的“剪刀石头布”小游戏

目录 一、引言 二、环境准备与基础知识 三、游戏界面制作 四、游戏逻辑实现 五、代码示例 六、游戏测试与优化 七、扩展与改进 八、总结 一、引言 “剪刀石头布”是一种古老的手势游戏,它简单易懂,趣味性强,适合各个年龄段的人参与。…

勒索检测能力升级,亚信安全发布《勒索家族和勒索事件监控报告》

评论员简评 近期(12.08-12.14)共发生勒索事件119起,相较之前呈现持平趋势。 与上周相比,近期仍然流行的勒索家族为lockbit3和8base。在涉及的勒索家族中,活跃程度Top5的勒索家族分别是:lockbit3、siegedsec、dragonforce、8base和…

vue3中pdf打印问题处理

1 get请求参数问题 之前的请求是post得不到参数,今天发现的问题很奇怪,从前端进入网关,网关居然得不到参数。 前端代码 const print () > {let linkUrlStr proxy.$tool.getUrlStr(proxy.$api.invOrder.psiInvOrder.printSalOutstock,{a…

error:0308010C:digital envelope routines::unsupported 前端项目错误

直接启动命令中增加: SET NODE_OPTIONS--openssl-legacy-provider && vue-cli-service serve

【电商项目实战】实现订单超时支付取消

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《电商项目实战》。🎯🎯 &am…

客服智能管理系统是如何应用的

客服系统有很多种类,针对不同场景的客服使用的客服系统也不同,如有网店里的在线客服、实体店里的电话客服、网站上的在线客服、公共服务型的热线客服、售后服务客服等等。所谓客服智能管理系统就是一种可以把多个客服场景都管理起来的系统,提…

【Proteus仿真】【STM32单片机】超声波测距系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用动态数码管、按键、HCSR04超声波、蜂鸣器模块等。 主要功能: 系统运行后,数码管显示超声波检测距离,当检测…

Vue中的计算属性与监听器

聚沙成塔每天进步一点点 ⭐ 专栏简介 Vue学习之旅的奇妙世界 欢迎大家来到 Vue 技能树参考资料专栏!创建这个专栏的初衷是为了帮助大家更好地应对 Vue.js 技能树的学习。每篇文章都致力于提供清晰、深入的参考资料,让你能够更轻松、更自信地理解和掌握 Vue.js 的核心概念和技…