• Selenium4.0 主流浏览器那些事儿


    目录

    前言

    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输入下列代码

    1. from selenium import webdriver
    2. def get_web_drive(type):
    3. if 'chrome' == type:
    4. drive = webdriver.Chrome()
    5. elif 'firefox' == type:
    6. drive = webdriver.Firefox()
    7. elif 'edge' == type:
    8. drive = webdriver.Edge()
    9. return drive
    10. drive = get_web_drive('chrome')
    11. drive.get('https://www.csdn.net/')
    12. drive1 = get_web_drive('firefox')
    13. drive1.get('https://www.csdn.net/')
    14. drive2 = get_web_drive('edge')
    15. drive2.get('https://www.csdn.net/')

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


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

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

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

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

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

    举例:

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

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

    1. from selenium import webdriver
    2. from selenium.webdriver.chrome.service import Service
    3. def get_web_drive(type):
    4. if 'chrome' == type:
    5. s = Service('F:/aaa/chromedriver.exe')
    6. drive = webdriver.Chrome(service=s)
    7. elif 'firefox' == type:
    8. s = Service('F:/aaa/geckodriver.exe')
    9. drive = webdriver.Firefox(service=s)
    10. elif 'edge' == type:
    11. s = Service('F:/aaa/msedgedriver.exe')
    12. drive = webdriver.Edge(service=s)
    13. return drive
    14. drive = get_web_drive('chrome')
    15. drive.get('https://www.csdn.net/')
    16. drive1 = get_web_drive('firefox')
    17. drive1.get('https://www.csdn.net/')
    18. drive2 = get_web_drive('edge')
    19. drive2.get('https://www.csdn.net/')

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

    Selenium4.0 主流浏览器那些事儿讲的差不多了,希望大家多多点赞

  • 相关阅读:
    C++ 运算符
    NFS性能瓶颈分析
    c++ 常用STL 之set
    imu预积分处理
    基于Unity3D的AR射击游戏设计与实现
    【面试】——Java面试重难点剖析
    gitee 使用
    并发包初识
    微信小程序源码获取(附工具的下载)
    【项目实战】高并发内存池
  • 原文地址:https://blog.csdn.net/weixin_40331132/article/details/126356747