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%免费】
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.