PS:自己的经验积累,同时分享。若内容有不妥,还望交流指正,谢谢!
以Python为例,对WebDrivr启动浏览器方法进行一些梳理和经验总结。简单介绍三款主流浏览器:Chrome、Firefox、IE/Edge。其实其他浏览器的启动方法基本类似,只是一些细节需要在使用中摸索总结,这三款是我个人用的比较多的,其中使用最多的是Chrome。
一、Chrome
Chrome的驱动是chromedriver.exe。chromedriver不严格区分32/64位,对应浏览器版本、系统版本即可。
较高版本(Chrome70以后)Chrome与chromedriver版本号一致,根据Chrome大版本下载即可,若一个Chrome对应多个chromedriver可根据详细版本号或时间顺序对应查找。如下图:
低版本的Chrome,Chrome版本号与chromedriver版本号不同,对应下表查找:
chromedrivr参考下载地址:
http://npm.taobao.org/mirrors/chromedriver/。
二、Firefox
Firefox的驱动是geckodriver.exe。Firefox需要匹配Selenium、Firefox版本,Selenium2内置驱动向前支持默认路径安装的Firefox。Selenium3以上版本Firefox47向后支持,但目前没有严格的版本对照,但区分32/64位,推荐大家根据浏览器版本时间、geckodriver版本时间,对照下载。如下图:
geckodriver参考下载地址:
http://npm.taobao.org/mirrors/geckodriver/。
三、IE/Edge
IE的驱动是IEDriverServer.exe。IEDriverServer版本与Selenium版本对应,注意区分到详细版本,根据Selenium版本下载,区分32/64位。另外需要注意的是,需要在浏览器的Internet选项中的安全页里有4个安全选项,Internet、本地Internet、受信任的站点、受限制的站点,这4个里面都有一个启用保护模式,都需要勾选上。如下图:
IEDriverServer参考下载地址:
http://selenium-release.storage.googleapis.com/index.html。Edge的驱动是MicrosoftWebDriver.exe(Legacy)/edgedriver.exe。旧版Edge18及以上会自动提供WebDriver更新。旧版Edge17及以下,根据Edge版本对应MicrosoftWebDriver版本下载。旧版Edge在如下图:
新版Edge根据Edge版本对应MicrosoftWebDriver版本下载,如下图:
注意区分新/旧版本MicrosoftWebDriver下载,如下图:
MicrosoftWebDriver/edgedriver参考下载地址:
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/。
四、浏览器驱动封装实例(Python)
from selenium import webdriver
class browser_Wrapper:
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_wrapper(),入参为:"Chrome"/"Firefox"/"IE"/"Edge"
browser_Wrapper().browser_wrapper("Chrome")