日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

使用Webdriver-manager解決瀏覽器與驅(qū)動(dòng)不匹配所帶來自動(dòng)化無法執(zhí)行的問題

來源: 責(zé)編: 時(shí)間:2023-08-05 11:46:03 4405觀看
導(dǎo)讀1、前言在我們使用 Selenium 進(jìn)行 UI 自動(dòng)化測(cè)試時(shí),常常會(huì)因?yàn)闉g覽器驅(qū)動(dòng)與瀏覽器版本不匹配,而導(dǎo)致自動(dòng)化測(cè)試無法執(zhí)行,需要手動(dòng)去下載對(duì)應(yīng)的驅(qū)動(dòng)版本,并替換原有的驅(qū)動(dòng),可能還會(huì)遇到跨操作系統(tǒng)進(jìn)行測(cè)試的時(shí)候,以及瀏覽器

KtV28資訊網(wǎng)——每日最新資訊28at.com

1、前言

在我們使用 Selenium 進(jìn)行 UI 自動(dòng)化測(cè)試時(shí),常常會(huì)因?yàn)闉g覽器驅(qū)動(dòng)與瀏覽器版本不匹配,而導(dǎo)致自動(dòng)化測(cè)試無法執(zhí)行,需要手動(dòng)去下載對(duì)應(yīng)的驅(qū)動(dòng)版本,并替換原有的驅(qū)動(dòng),可能還會(huì)遇到跨操作系統(tǒng)進(jìn)行測(cè)試的時(shí)候,以及瀏覽器自動(dòng)升級(jí)后,也會(huì)導(dǎo)致與驅(qū)動(dòng)不匹配的問題。KtV28資訊網(wǎng)——每日最新資訊28at.com

為了解決這個(gè)問題,可以使用 webdriver-manager,它可以幫助我們自動(dòng)識(shí)別當(dāng)前運(yùn)行環(huán)境下的系統(tǒng)信息以及對(duì)應(yīng)瀏覽器信息,并自動(dòng)下載對(duì)應(yīng)瀏覽器驅(qū)動(dòng)。KtV28資訊網(wǎng)——每日最新資訊28at.com

2、簡(jiǎn)介

webdriver-manager 庫提供了自動(dòng)管理不同瀏覽器驅(qū)動(dòng)程序的方法。KtV28資訊網(wǎng)——每日最新資訊28at.com

主要思想是簡(jiǎn)化不同瀏覽器的二進(jìn)制驅(qū)動(dòng)程序的管理。KtV28資訊網(wǎng)——每日最新資訊28at.com

目前支持:KtV28資訊網(wǎng)——每日最新資訊28at.com

  • ChromeDriver
  • EdgeChromiumDriver
  • GeckoDriver
  • IEDriver
  • OperaDriver

安裝:KtV28資訊網(wǎng)——每日最新資訊28at.com

pip install webdriver_manager

3、示例

原始代碼:KtV28資訊網(wǎng)——每日最新資訊28at.com

#!/usr/bin/env python# -*- coding: utf-8 -*-# 公眾號(hào):AllTests軟件測(cè)試from selenium import webdriverdriver = webdriver.Chrome()driver.get('https://www.baidu.com/')

運(yùn)行后報(bào)錯(cuò),發(fā)現(xiàn)此版本的 ChromeDriver 與當(dāng)前瀏覽器版本不匹配,無法執(zhí)行。KtV28資訊網(wǎng)——每日最新資訊28at.com

更新代碼(導(dǎo)入webdriver-manager,運(yùn)行腳本,webdriver-manager 將檢查當(dāng)前使用的瀏覽器版本,并自動(dòng)下載/更新匹配的瀏覽器驅(qū)動(dòng)程序,這樣將始終保持瀏覽器版本與驅(qū)動(dòng)程序是互相匹配的。)KtV28資訊網(wǎng)——每日最新資訊28at.com

#!/usr/bin/env python# -*- coding: utf-8 -*-# 公眾號(hào):AllTests軟件測(cè)試from selenium import webdriverfrom webdriver_manager.chrome import ChromeDriverManagerdriver = webdriver.Chrome(executable_path=ChromeDriverManager().install())driver.get('https://www.baidu.com/')

4、更多

作者在示例中使用的是 Selenium 3,webdriver-manager 也支持 Selenium 4 的。KtV28資訊網(wǎng)——每日最新資訊28at.com

Chrome

# selenium 3from selenium import webdriverfrom webdriver_manager.chrome import ChromeDriverManagerdriver = webdriver.Chrome(ChromeDriverManager().install())
# selenium 4from selenium import webdriverfrom selenium.webdriver.chrome.service import Service as ChromeServicefrom webdriver_manager.chrome import ChromeDriverManagerdriver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))

Chromium

# selenium 3from selenium import webdriverfrom webdriver_manager.chrome import ChromeDriverManagerfrom webdriver_manager.core.utils import ChromeTypedriver = webdriver.Chrome(ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install())
# selenium 4from selenium import webdriverfrom selenium.webdriver.chrome.service import Service as ChromiumServicefrom webdriver_manager.chrome import ChromeDriverManagerfrom webdriver_manager.core.utils import ChromeTypedriver = webdriver.Chrome(service=ChromiumService(ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install()))

Brave

# selenium 3from selenium import webdriverfrom webdriver_manager.chrome import ChromeDriverManagerfrom webdriver_manager.core.utils import ChromeTypedriver = webdriver.Chrome(ChromeDriverManager(chrome_type=ChromeType.BRAVE).install())
# selenium 4from selenium import webdriverfrom selenium.webdriver.chrome.service import Service as BraveServicefrom webdriver_manager.chrome import ChromeDriverManagerfrom webdriver_manager.core.utils import ChromeTypedriver = webdriver.Chrome(service=BraveService(ChromeDriverManager(chrome_type=ChromeType.BRAVE).install()))

Edge

# selenium 3from selenium import webdriverfrom webdriver_manager.microsoft import EdgeChromiumDriverManagerdriver = webdriver.Edge(EdgeChromiumDriverManager().install())
# selenium 4from selenium import webdriverfrom selenium.webdriver.edge.service import Service as EdgeServicefrom webdriver_manager.microsoft import EdgeChromiumDriverManagerdriver = webdriver.Edge(service=EdgeService(EdgeChromiumDriverManager().install()))

Firefox

# selenium 3from selenium import webdriverfrom webdriver_manager.firefox import GeckoDriverManagerdriver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
# selenium 4from selenium import webdriverfrom selenium.webdriver.firefox.service import Service as FirefoxServicefrom webdriver_manager.firefox import GeckoDriverManagerdriver = webdriver.Firefox(service=FirefoxService(GeckoDriverManager().install()))

IE

# selenium 3from selenium import webdriverfrom webdriver_manager.microsoft import IEDriverManagerdriver = webdriver.Ie(IEDriverManager().install())
# selenium 4from selenium import webdriverfrom selenium.webdriver.ie.service import Service as IEServicefrom webdriver_manager.microsoft import IEDriverManagerdriver = webdriver.Ie(service=IEService(IEDriverManager().install()))

Opera

# selenium 3from selenium import webdriverfrom selenium.webdriver.chrome import servicefrom webdriver_manager.opera import OperaDriverManagerwebdriver_service = service.Service(OperaDriverManager().install())webdriver_service.start()driver = webdriver.Remote(webdriver_service.service_url, webdriver.DesiredCapabilities.OPERA)
# selenium 4from selenium import webdriverfrom selenium.webdriver.chrome import servicefrom webdriver_manager.opera import OperaDriverManagerwebdriver_service = service.Service(OperaDriverManager().install())webdriver_service.start()options = webdriver.ChromeOptions()options.add_experimental_option('w3c', True)driver = webdriver.Remote(webdriver_service.service_url, options=options)

自定義日志記錄

如果需要使用自定義日志記錄,可以創(chuàng)建一個(gè)記錄器并使用 set_logger() 進(jìn)行設(shè)置。KtV28資訊網(wǎng)——每日最新資訊28at.com

import loggingfrom webdriver_manager.core.logger import set_loggerlogger = logging.getLogger("custom_logger")logger.setLevel(logging.DEBUG)logger.addHandler(logging.StreamHandler())logger.addHandler(logging.FileHandler("custom.log"))set_logger(logger)

本文鏈接:http://www.www897cc.com/showinfo-26-143-0.html使用Webdriver-manager解決瀏覽器與驅(qū)動(dòng)不匹配所帶來自動(dòng)化無法執(zhí)行的問題

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 一文掌握 Golang 模糊測(cè)試(Fuzz Testing)

下一篇: 三分鐘白話RocketMQ系列—— 如何發(fā)送消息

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 主站蜘蛛池模板: 高要市| 德江县| 青阳县| 汨罗市| 南郑县| 区。| 安塞县| 晋宁县| 方正县| 宾阳县| 浠水县| 武穴市| 原平市| 公安县| 吉水县| 疏附县| 明溪县| 合水县| 奈曼旗| 重庆市| 沧源| 长泰县| 米易县| 龙陵县| 新化县| 舞阳县| 垫江县| 高州市| 安义县| 洛宁县| 凤冈县| 微山县| 乌拉特前旗| 东乡| 宜丰县| 怀化市| 安新县| 蒙阴县| 共和县| 修水县| 开封县|