作者:cai.ruiying [ZSK]
前言:Python+selenium+unittest
(1)Python建议大家使用Python3,可以通过官方地址下载安装,官方下载地址:https://www.python.org/downloads/,再添加环境变量“path”-“Python安装路径”即可;
(2)selenium安装,安装Python完成后,可以使用pip直接安装selenium,cmd→pip install selenium;
(3)unittest,由于它是Python自带的测试框架,我们使用时只需要直接写入代码“import unittest”即可。
WebDriver是selenium的核心组件,通过浏览器驱动driver来驱动浏览器,执行测试脚本。在我们日常脚本的编写过程中,不同的系统可能需要不同的浏览器来执行,不同的浏览器也有不同的配置方法,我们通过封装了浏览器驱动方法,实现一个统一的浏览器驱动方法。
《自动化测试框架Python+selenium+unittest》将为大家呈现一个框架系列讲解,陆续为大家介绍Web UI自动化测试常用方法的封装及使用。
本篇是通过自己对浏览器驱动的经验,为大家梳理三大主流浏览器的WebDriver驱动方法,及浏览器驱动注意事项:Chrome、Firefox、IE/Edge。包括:浏览器驱动的选用、浏览器驱动方法编写、驱动方法调用。下面按顺序为大家介绍。
一、Chrome
低版本的Chrome,Chrome版本号与chromedriver版本号不同,对应下表查找:
chromedrivr参考下载地址:http://npm.taobao.org/mirrors/chromedriver/。
二、Firefox
geckodriver参考下载地址:http://npm.taobao.org/mirrors/geckodriver/。
三、IE/Edge
IEDriverServer参考下载地址:http://selenium-release.storage.googleapis.com/index.html。
Edge的驱动是MicrosoftWebDriver.exe(Legacy)/edgedriver.exe。旧版Edge18及以上会自动提供WebDriver更新。旧版Edge17及以下,根据Edge版本对应MicrosoftWebDriver版本下载。旧版Edge在如下图:
注意区分新/旧版本MicrosoftWebDriver下载,如下图:
MicrosoftWebDriver/edgedriver参考下载地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/。
四、浏览器驱动封装实例(Python)
from selenium import webdriver class browser_Wrapper(object): def browser_wrapper(self, item): ''' 启动浏览器 :param item:Chrome/Firefox/IE/Edge :return: ''' # 本方法中的driver使用环节变量配置,将对应版本driver放置Python安装路径中即可 if item == "Chrome": print("===为您启动Chrome...") # 配置Chrome启动项 self.option = webdriver.ChromeOptions() # 屏蔽自动化受控提示 && 开发者提示 self.option.add_experimental_option("excludeSwitches", ['enable-automation', 'load-extension']) # 屏蔽'保存密码'提示框 self.prefs = {} self.prefs["credentials_enable_service"] = False self.prefs["profile.password_manager_enabled"] = False self.option.add_experimental_option("prefs", self.prefs) # 启动谷歌浏览器 webdriver.Chrome(options=self.option) # 线程等待2秒 elif item == "Firefox": # 火狐浏览器无需进行配置,注意这里的火狐是安装在默认路径的,自定义路径安装的需要配置火狐的绝对路径 print("===为您启动Firefox...") # 启动火狐浏览器 self.driver = webdriver.Firefox() # 线程等待2秒 elif item == "IE": print("===为您启动IE...") # 注意iedriver版本需要与selenium版本对应 self.driver = webdriver.Ie() elif item == "Edge": print("===为您启动Edge...") # 注意与Edge版本匹配 self.driver = webdriver.Edge() else: print("===未找到您的浏览器配置,请使用其他浏览器()...") if __name__ == '__main__': browser = browser_Wrapper() # 调用启动浏览器方法browser_wrapper(),入参为:"Chrome"/"Firefox"/"IE"/"Edge" browser.browser_wrapper("Chrome")