Utilisez webdriver-manager pour résoudre le problème que l'automatisation ne peut pas être exécutée en raison de l'incompatibilité entre le navigateur et le pilote

Lorsque nous utilisons Selenium pour les tests d'automatisation de l'interface utilisateur, c'est souvent parce que le pilote du navigateur ne correspond pas à la version du navigateur que le test automatisé ne peut pas être exécuté. Il est nécessaire de télécharger manuellement la version du pilote correspondante et de remplacer le pilote d'origine. systèmes, et après la mise à niveau automatique du navigateur, cela entraînera également des problèmes qui ne correspondent pas au pilote.

Afin de résoudre ce problème, vous pouvez utiliser webdriver-manager, qui peut nous aider à identifier automatiquement les informations système et les informations de navigateur correspondantes dans l'environnement d'exploitation actuel, et à télécharger automatiquement le pilote de navigateur correspondant.

Introduction

La bibliothèque webdriver-manager fournit des méthodes pour gérer automatiquement différents pilotes de navigateur.
L'idée principale est de simplifier la gestion des pilotes binaires pour les différents navigateurs.

Actuellement pris en charge :

ChromeDriver

EdgeChromiumDriver

GeckoDriver

IEDriver

Pilote d'opéra

Installer:

pip install webdriver_manager

exemple

Code d'origine :

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 公众号:伤心的辣条

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')

Après l'exécution, une erreur est signalée et il s'avère que cette version de ChromeDriver ne correspond pas à la version actuelle du navigateur et ne peut pas être exécutée.
Mettre à jour le code (importez webdriver-manager, exécutez le script, webdriver-manager vérifiera la version du navigateur actuellement utilisée et téléchargera/mettra à jour automatiquement le pilote de navigateur correspondant, qui maintiendra toujours la version du navigateur et le pilote correspondant.)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 公众号:伤心的辣条

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(executable_path=ChromeDriverManager().install())
driver.get('https://www.baidu.com/')

Plus

L'auteur utilise Selenium 3 dans l'exemple, et webdriver-manager prend également en charge Selenium 4.

1、Chrome

# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())
# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))

2、Chrome

# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.utils import ChromeType

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

driver = webdriver.Chrome(service=ChromiumService(ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install()))

3, courageux

# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.utils import ChromeType

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

driver = webdriver.Chrome(service=BraveService(ChromeDriverManager(chrome_type=ChromeType.BRAVE).install()))

4、Bord

# selenium 3
from selenium import webdriver
from webdriver_manager.microsoft import EdgeChromiumDriverManager

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

driver = webdriver.Edge(service=EdgeService(EdgeChromiumDriverManager().install()))

5、Firefox

# selenium 3
from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager

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

driver = webdriver.Firefox(service=FirefoxService(GeckoDriverManager().install()))

6、IE

# selenium 3
from selenium import webdriver
from webdriver_manager.microsoft import IEDriverManager

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

driver = webdriver.Ie(service=IEService(IEDriverManager().install()))

7、Opéra

# selenium 3
from selenium import webdriver
from selenium.webdriver.chrome import service
from webdriver_manager.opera import OperaDriverManager

webdriver_service = service.Service(OperaDriverManager().install())
webdriver_service.start()

driver = webdriver.Remote(webdriver_service.service_url, webdriver.DesiredCapabilities.OPERA)
# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome import service
from webdriver_manager.opera import OperaDriverManager

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

8. Journalisation personnalisée

Si vous avez besoin d'utiliser une journalisation personnalisée, vous pouvez créer un enregistreur et le définir avec set_logger().

import logging
from webdriver_manager.core.logger import set_logger

logger = logging.getLogger("custom_logger")
logger.setLevel(logging.DEBUG)
logger.addHandler(logging.StreamHandler())
logger.addHandler(logging.FileHandler("custom.log"))

set_logger(logger)

Enfin : afin de redonner aux fans inconditionnels, j'ai compilé pour vous un didacticiel complet d'apprentissage vidéo sur les tests de logiciels. Si vous en avez besoin, vous pouvez l'obtenir gratuitement.【保证100%免费】
insérez la description de l'image ici

Documentation sur les entretiens de test de logiciels

Nous devons étudier pour trouver un emploi bien rémunéré. Les questions d'entrevue suivantes sont les derniers documents d'entrevue de sociétés Internet de premier plan telles qu'Ali, Tencent et Byte, et certains patrons de Byte ont donné des réponses faisant autorité. croire que tout le monde peut trouver un emploi satisfaisant.

insérez la description de l'image ici
insérez la description de l'image ici

Guess you like

Origin blog.csdn.net/m0_67695717/article/details/132040507