0


Python Selenium4.0与浏览器的腻歪

前言

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 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


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 Service

s = 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


本文转载自: https://blog.csdn.net/weixin_40331132/article/details/126356747
版权归原作者 魂尾ac 所有, 如有侵权,请联系我们删除。

“Python Selenium4.0与浏览器的腻歪”的评论:

还没有评论