目录

前言

1、浏览器驱动是什么,如何下载安装

2、编写脚本时驱动放置

3、跨服务集群机器驱动放置


前言

Python Selenium编写的自动化脚本会自动打开浏览器进行模拟人类点击、输入、选择等操作。但大多数据浏览器本身并不直接支持脚本操作,需要下载官方提供的驱动exe文件来完成自动化。本篇文章述说主流浏览器驱动的下载以及使用。

本文使用谷歌、火狐、Edge三种浏览器为案例讲解


1、浏览器驱动是什么,如何下载安装

浏览器驱动是自动化脚本与浏览器之间的媒介,驱动解析脚本在浏览器上运行。

驱动下载网址

Google:http://chromedriver.storage.googleapis.com/index.html

Firefox:https://liushilive.github.io/github_selenium_drivers/md/Firefox.html

Edge: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

在下载驱动时,需要先确认好电脑浏览器的版本。如果版本不对号,脚本运行时,浏览器将无法打开并且报错。

PS:一般是浏览器版本向前兼容,这句话理解:当浏览器版本没有与之对应的驱动版本时,下载最近前一个版本的驱动。

浏览器版本在==> 菜单--帮助--关于浏览器里可查看

谷歌浏览器

上图google浏览器版本为103.0.5060.114,在驱动版本中找103.0.5060.24即可

火狐浏览器

上图火狐浏览器版本10.0.4(64)   所以我们下0.30.0的驱动,支持V89.0+   win64

Edge浏览器

上图edge浏览器是104.0.1293.47版本,下载对应版本的驱动即可


2、编写脚本时驱动放置

新增一个py项目

在项目下新增一个webdemo目录

将三个驱动器都copy到webdemo目录下

新一个demo01.py文件 ,

在demo01.py输入下列代码


from selenium import webdriver
def get_web_drive(type):if 'chrome' == type:drive = webdriver.Chrome()elif 'firefox' == type:drive = webdriver.Firefox()elif 'edge' == type:drive = webdriver.Edge()return drivedrive = get_web_drive('chrome')
drive.get('https://www.csdn.net/')drive1 = get_web_drive('firefox')
drive1.get('https://www.csdn.net/')drive2 = get_web_drive('edge')
drive2.get('https://www.csdn.net/')

运行上面代码后,自动打开三个浏览器,从左至右,分别为谷歌、火狐、Edge


3、跨服务集群机器驱动放置

针对于自动化测试集群来说,每台机器浏览器版本不一样,驱动放在代码目录下面,将无法兼容浏览器版本。

此时我们可以将每台机器的浏览器驱动放到一个固定的目录下,比如:f:/aaa/ 目录下

这样做的好处:自动化测试脚本在不同的计算机里运行时,都不会出现驱动不兼容报错的问题。

PS:4.0版本以上的Selenium,浏览器初始化方法Chrome() 、Firefox()、Edge()等的executable_path驱动路径参数即将停止使用,由service对象代替,所以在代码里先要引入Service类,然后用驱动路径创建Sever对象,传入初始化浏览器方法里

举例:

from selenium import webdriver
from selenium.webdriver.chrome.service import Services = Service('F:/aaa/chromedriver.exe')   #初始化Service对象
drive = webdriver.Chrome(service=s)     #将Service对象传入浏览器初始化方法,启动浏览器

此时我们要将webdemo目录下的驱动清空,然后将demo01.py的代码更改为

from selenium import webdriver
​
from selenium.webdriver.chrome.service import Service
​
def get_web_drive(type):if 'chrome' == type:s = Service('F:/aaa/chromedriver.exe')drive = webdriver.Chrome(service=s)elif 'firefox' == type:s = Service('F:/aaa/geckodriver.exe')drive = webdriver.Firefox(service=s)elif 'edge' == type:s = Service('F:/aaa/msedgedriver.exe')drive = webdriver.Edge(service=s)
​return drive
​
drive = get_web_drive('chrome')
drive.get('https://www.csdn.net/')
​
drive1 = get_web_drive('firefox')
drive1.get('https://www.csdn.net/')
​
drive2 = get_web_drive('edge')
drive2.get('https://www.csdn.net/')

运行代码,自动化打开三个浏览器,从左至右,分别为谷歌、火狐、Edge

Selenium4.0 与 浏览器的事儿讲述完毕,希望大家多多点赞

如果是做自动化的朋友,可以了解以下博客:

Python+Selenium WebUI自动化框架 -- 实现特殊PO模型_魂尾ac的博客-CSDN博客_python自动化po模型.

Python从无到有搭建接口(API)自动化测试框架_魂尾ac的博客-CSDN博客_python搭建api

Python Selenium4.0与浏览器的腻歪相关推荐

  1. Selenium4.0+Python手撸自动化框架系列之 Web元素等待方式介绍 与 封装

    目录 前言 三种等待 一.线程等待 二.隐性等待 三.显性等待 封装 一.参数设计 二.函数名设计 三.封装代码设计 前言 web自动化测试,常常因为硬件配制,浏览器,网速等因素导致网页加载速度过慢, ...

  2. python用谷歌内核制作浏览器_用cef Python打造自己的浏览器

    背景 项插新,都次过是宗现制的前搭待个断前能绿和目需要做一个客户端的壳,内置浏览器,访问指定 直分调浏器代,刚求的一学础过功互有解小久宗点差维含数如数的url 采用技术 python遇新是直朋能到分览 ...

  3. python使用selenium进行浏览器中途调试的方法

    python使用selenium进行浏览器中途调试的方法 1.检查9222端口是否已经启动浏览器 2.如已启动就返回chrome_option 3.如未启动则打开浏览器,保存配置文件到E:/pytho ...

  4. Python + Tkinter:图片浏览器(二)

    Python + Tkinter:图片浏览器(二) 前言 说明 改进 功能 图片导航 显示上一张高清图片 显示下一张高清图片 缩略图导航 缩略图列表 缩略图上一页 缩略图下一页 缩略图指引 图片管理 ...

  5. 【Python + selenium】在浏览器打开新页签

    [Python + selenium]在浏览器打开新页签,打开方式 2017年09月06日 11:34:25 宇风-飞扬 阅读数:3472 标签: seleniumpython句柄移动 更多 个人分类 ...

  6. Python+BeautifulSoup+Selenium模拟浏览器循环自动播放视频,如哔哩哔哩某个UP主的视频

    1.前言 计算机的出现,推动了人类社会的进步,使得人们更高效的工作或是生活.当我们很"懒"的时候,计算机就能站出来,帮助我们做一些我们觉得浪费时间的事情了.你嫌用手点鼠标麻烦,计算 ...

  7. python批量请求url_使用Python Requests伪装成浏览器请求百度360获取关键词批量排名...

    使用Python Requests伪装成浏览器请求百度360获取关键词批量排名 #!/usr/local/python/bin/python3.7 import requests,re,time,ra ...

  8. 适合python爬虫使用的浏览器_python爬虫:常用浏览器的useragent

    1,为什么需要修改UserAgent 在写python网络爬虫程序的时候,经常需要修改UserAgent,有很多原因,罗列几个如下: 不同Agent下看到的内容不一样,比如,京东网站上的手机版网页和p ...

  9. Python使用mechanize模拟浏览器

    Python使用mechanize模拟浏览器 之前我使用自带的urllib2模拟浏览器去进行访问网页等操作,很多网站都会出错误,还会返回乱码,之后使用了 mechanize模拟浏览器,这些情况都没出现 ...

最新文章

  1. ML机器学习导论学习笔记
  2. spring boot+thmyleaf ModelAndView页面传值
  3. 2015计算机类专业课类试卷,2015计算机专业知识试题.doc
  4. 规范化之路(一) Checkstyle插件安装使用
  5. C# 给自己写的软件,加注册码功能。
  6. docker(二)基本操作
  7. 能力提升综合题单Part 8.3.1 二叉树Part 8.3.2 树的直径
  8. 02 python入门
  9. 旋转木马图片效果图,轮播图
  10. ROS从入门到精通3-5:blender机器人模型定制皮肤贴图
  11. 个人理财--知识点总结
  12. 记在2019,winter is coming
  13. 哪些权重7权重8的网站怎么做的!我的站就是这么做的!轻量级泛目录无需数据库适合所有网站所有cms只需要放在根目录即可
  14. 什么样的人适合当程序员?挺有意思的一篇文章
  15. 【ELM回归预测】基于非洲秃鹫算法优化极限学习机预测附matlab代码
  16. VARIANT数据类型详解
  17. UWB/蓝牙/WiFi/红外/Zigbee/LoRa Edge…….室内定位技术的百家争鸣时代
  18. 常见ant命令及其用法
  19. 笔记本电脑屏幕PWM调光频率测试调节软件
  20. cst是什么时间(Cst是什么检查)

热门文章

  1. 充分利用----英文
  2. 【ffmpeg】windows上用命令行批量将.flac格式转换为.wav等格式
  3. AutoSAR系列讲解(深入篇)14.10-Mcal Gtm的Tom配置(下)
  4. Java入门系列之访问修饰符作用范围
  5. nginx html代码压缩,Nginx优化服务之网页压缩的实现方法
  6. 大型论坛虚拟服务器,论坛可以用虚拟主机吗
  7. 面试题分享之一个印象最深的bug
  8. java编程定义狗_大狗干货铺:13个java编程中的小技巧
  9. 使用 Veeam 进行物理到虚拟迁移
  10. a370m显卡参数 a370m显卡什么水平 锐炫a370m怎么样