selenium3 自动化测试入门 ~~~ 操作浏览器

前言

该教程适用于selenium 3版本,如果已经更新到selenium 4,启动浏览器的方法需要修改,具体可参考:selenium 4 启动浏览器

前置条件(浏览器驱动放置位置)

一、第一种方法
1.下载浏览器驱动
2.粘贴在python根目录下

二、第二种方法
1.下载浏览器驱动
2.指定驱动路径驱动Chrome 浏览器

	#.\driver\chromedriver.exe 为驱动存放位置,可以是相对路径或者绝对路径driver = webdriver.Chrome(executable_path = r'.\driver\chromedriver.exe')

三、第三种方法
1.将浏览器驱动配置在环境变量中
(*注:不建议)

1、启动浏览器(实例化浏览器)

启动浏览器(驱动已放入python根目录下)

# 启动Chrome浏览器
driver = webdriver.Chrome() # 启动Firefox浏览器
driver = webdriver.Firefox()# 启动IE浏览器
driver = webdriver.Ie()  

2、最大化浏览器

# driver为实例化浏览器对象(下同)
driver.maximize_window()

3、设置浏览器大小

# width 400, height 800
driver.set_window_size(480, 800)  

4、打开网页

# 指定驱动路径 启动 
url = driver.get("https://ww.baidu.com")

5、使用另外窗口打开网页

# 新开一个窗口,通过执行js来新开一个窗口
js = 'window.open("https://mail.163.com");'
driver.execute_script(js)

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

driver.get('https://www.zhihu.com/') 
driver.get('https://mail.163.com')  # 在同一窗口重新打开一个网页
driver.back()  # 后退 到知乎
driver.forward()  # 前进 换回到163

7、获取网页标题

# 获取网页的title
title = driver.title 

8、获取网页的URL

获取的url为当前浏览器地址栏中的url

# 获取网页的URL
url = driver.current_url  

9、刷新页面

driver.refresh()

10、获取浏览器窗口大小

size = driver.get_window_size()	# 返回为字典型 如:{'width': 1050, 'height': 840}

关闭浏览器

# 关闭的是当前浏览器窗口的页签,存在多个窗口时关闭当前的活动窗口
driver.close()

12、退出浏览器

# 关闭整个浏览器,包括webdriver的进程也会退出
driver.quit()

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

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

相关文章

数据资产如何入表?有哪些步骤?

当下,数据资产入表这一关键环节对于企业的高效运营与决策制定具有至关重要的作用。软信天成团队经过长期研究与实践,将数据资产入表的全流程归纳总结为四个核心步骤,以期为诸位提供帮忙。 (一)确保数据合规&#xff0…

jvm(HotSpotVM)学习记录

1:当我们写的java文件经过编译器编译后生成class文件。class文件里面包含了各种java语言规范的特定语法。可以通过javap -v -private xxx.class 例如: javap -v -private Gas.class Classfile /D:/project/ike-springboot-carbonzero-v2/springboot-bms…

前端三剑客 —— CSS (第二节)

目录 内容回顾: CSS选择器*** 属性选择器 伪类选择器 1):link 超链接点击之前 2):visited 超链接点击之后 3):hover 鼠标悬停在某个标签上时 4):active 鼠标点击某个标签时,但没有松开 5):fo…

LabVIEW动车组谐波分析与检测系统

LabVIEW动车组谐波分析与检测系统 随着中国高速铁路网络的快速发展,动车组数量和运行速度的不断提升,其产生的谐波问题对电网产生了不小的影响。基于图形化编程语言LabVIEW,开发了一套动车组谐波分析与检测系统,旨在实时监控与分…

机器视觉/将HIK海康面阵相机连接Halcon软件

文章目录 概述工业相机客户端动态库拷贝Halcon连接HIK相机的配置相机参数其他 概述 本文简述了如何将海康面阵相机连接到Halcon软件中进行实时取图的过程。 补充, 整个实践过程使用 17.12 / x64-win64 Halcon 软件版本 海康 MV-CE200-10GM 面阵相机。从左到右简解…

B树、B+树、哈夫曼树

目录 1. B树2. B树3. 哈夫曼树 1. B树 特点:一个节点当中可以有多个值,节点内部key 值是有序的,节点内部存储的是key-value类型的数据 磁盘中文件存储用B树。 4阶B树一个节点最多三个key值 5阶B树一个节点最多四个key值 B树有很多的分支&…

华为OD机试 - 绘图机器 - 双指针(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷C卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试…

Matlab中的脚本和函数

Matlab中的脚本和函数 文章目录 Matlab中的脚本和函数脚本创建脚本代码注释函数创建函数局部函数嵌套函数私有函数匿名函数补充知识函数句柄测试环境:Win11 + Matlab R2021a 脚本 ​ Matlab脚本是最简单的程序文件类型。它们可用于自动执行一系列 Matlab 命令,如命令行重复执…

复制初始化

#include <iostream> using namespace std;class Base { public:Base(const char* s) { str s; cout << "Base" << endl;}Base(const Base&) delete; private:const char* str; };int main() {Base d "123"; }上述代码直接将字符…

ROS2 学习(一)ROS2 简介与基本使用

参考引用 动手学 ROS2 1. ROS2 介绍与安装 1.1 ROS2 的历史 ROS&#xff08;Robot Operating System&#xff0c;机器人操作系统&#xff09;&#xff0c;但 ROS 本身并不是一个操作系统&#xff0c;而是可以安装在现在已有的操作系统上&#xff08;Linux、Windows、Mac&…

『VUE』07. v-for 的规范性:通过key管理状态 就地更新渲染策略(详细图文注释)

目录 vue渲染的就地更新策略一个例子说明key的必要性示例代码总结 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 如果你遇到了你的页面元素莫名其妙的呈现顺序,可能是你没有设置key. vue渲染的就地更新策略 在 Vue 中&#xff…

08、JS实现:数组两数之和算法的两种解决方案(一步一步剖析,很详细)

数组两数之和的算法 Ⅰ、数组两数之和算法的方案一&#xff1a;1、题目描述&#xff1a;2、解题思路&#xff1a;3、实现代码&#xff1a; Ⅱ、数组两数之和算法的方案二&#xff1a;1、实现代码&#xff1a; Ⅲ、小结&#xff1a; Ⅰ、数组两数之和算法的方案一&#xff1a; …

BIONIOAIO

通信技术整体解决的问题 1.局域网内的通信要求 2.多系统间的底层消息传递机制 3.高并发下&#xff0c;大数据量的通信场景需要 4.游戏行业。无论是手游服务端、还是大型网络游戏&#xff0c;java的应用越来越广 IO模型基本说明 就是用什么样的通道或者说是通信模式和架构…

数据结构——二叉树——堆

前言&#xff1a; 在前面我们已经学习了数据结构的基础操作&#xff1a;顺序表和链表及其相关内容&#xff0c;今天我们来学一点有些难度的知识——数据结构中的二叉树&#xff0c;今天我们先来学习二叉树中堆的知识&#xff0c;这部分内容还是非常有意思的&#xff0c;下面我们…

C++常见算法有哪些

当涉及到常见的算法示例时&#xff0c;以下是一些常见的 C 算法及其示例&#xff1a; 1. **排序算法**&#xff1a; - 冒泡排序 - 选择排序 - 插入排序 - 归并排序 - 堆排序 - 计数排序 - 桶排序 - 基数排序 2. **搜索算法**&#xff1a; - 线性搜…

前端xss攻击——规避innerHtml过滤标签节点及属性

文章目录 ⭐前言⭐规避innerHtml&#x1f496;在iframe中使用innerHtml的场景&#x1f496;标签转义&#x1f496;url 进行encode&#x1f496;手动过滤内容转义 ⭐inscode代码块演示⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文分享xss攻击——规避innerHtml过…

Java学习笔记NO.29

Java容器 在Java编程中&#xff0c;容器是一种用于存储和管理数据的数据结构。Java提供了丰富的容器类库&#xff0c;包括List、Set、Map等&#xff0c;以及它们的实现类ArrayList、HashSet、HashMap等。 1. 列表&#xff08;List&#xff09; 列表是一种有序的集合&#xf…

list(链表)容器(一)

一、list基本概念 链表&#xff08;list&#xff09;是一种物理存储单元上非连续的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接实现的 链表的组成&#xff1a;链表由一系列结点组成 结点的组成&#xff1a;一个是存储数据元素的数据域&#xff0…

webpack.prod.js(webpack生产环境配置文件)

生产环境&#xff1a;只打包不运行本地服务器 对于在config目录下的webpack.prod.js 1.在根目录下运行 npx webpack --config ./config/webpack.prod.js 2.在package.json文件中配置 "build":"npx webpack --config ./config/webpack.prod.js" const …

正弦实时数据库(SinRTDB)的使用(11)-限制磁盘空间

前文已经将正弦实时数据库的使用进行了介绍&#xff0c;需要了解的可以先看下面的博客&#xff1a; 正弦实时数据库(SinRTDB)的安装 正弦实时数据库(SinRTDB)的使用(1)-使用数据发生器写入数据 正弦实时数据库(SinRTDB)的使用(2)-接入OPC DA的数据 正弦实时数据库(SinRTDB)…