Aktuell nutze ich noch Crossbrowsertesting.com um viele verschiedene Testprofile im Bereich Webautomatisierung zu nutzen.
Durchaus, natürlich sehr Umfangreich was dort angeboten wird. Aber faktisch entstehen hier jährliche Kosten die manche Unternehmen sich nicht leisten können, manchmal auch nicht wollen. Also muss man entsprechend hier eben stark umdenken, um eben auch entsprechendes im selben Umfang liefern zu können.
Auch Crossbrowsertesting oder Browserstack sind limitiert, und sicherlich ist mit Selenium genau soviel wenn nicht sogar mehr umzusetzen als viele hier vielleicht denken.
Aber meine Überlegungen gehen in eine andere Richtung:
- Webdriver Integration in einzelne Unittest
- Autoupdate der Webdriver im Unittest
- Spezielle Profile die man entsprechend aussuchen kann
- Ausführliche Reports (Jenkins, aber auch für Lokale Test)
In diesem ersten Schritt erkläre ich wie man Webdriver automatisch updated innerhalb eines Unittest.
Ansatz 1: Der Chromedriver-Autoinstaller
Es gibt mehrere Möglichkeiten um einen Autoupdate Prozess innerhalb eines Unittest umzusetzen. Ich selbst nutzte hier im Unittest Framework Package chromedriver-autoinstaller, zumindest eben für den Chrome Browser.
pip install chromedriver-autoinstaller
In diesem Beispiel sieht man wie man den autoinstaller einbindet.
from selenium import webdriver import chromedriver_autoinstaller chromedriver_autoinstaller.install() # Check if the current version of chromedriver exists # and if it doesn't exist, download it automatically, # then add chromedriver to path driver = webdriver.Chrome() driver.get("http://www.python.org") assert "Python" in driver.title
Ansatz 2: Webdriver Manager for Python
Ein weiterer und zwar noch besserer Ansatz ist aber den Webdriver Manager zu nutzen. Dieser bietet aktuell die Unterstützung für:
- ChromeDriver
- GeckoDriver
- IEDriver
- OperaDriver
- EdgeChromiumDriver
pip install webdriver-manager
Autoupdate Chrome Browser
Wie man den Chrome Browser einbindet und permanent updated ?
from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(ChromeDriverManager().install())
Autoupdate Chromium Browser
Wie man den Chrome Browser einbindet und permanent updated ?
from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from webdriver_manager.utils import ChromeType driver = webdriver.Chrome(ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install())
Autoupdate FireFox Browser
Wie man den Chrome Browser einbindet und permanent updated ?
from selenium import webdriver from webdriver_manager.firefox import GeckoDriverManager driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())
Autoupdate IE Browser
Wie man den IE Browser einbindet und permanent updated ?
from selenium import webdriver from webdriver_manager.microsoft import IEDriverManager driver = webdriver.Ie(IEDriverManager().install())
Autoupdate Edge Browser
Wie man den Edge Browser einbindet und permanent updated ?
from selenium import webdriver from webdriver_manager.microsoft import EdgeChromiumDriverManager driver = webdriver.Edge(EdgeChromiumDriverManager().install())
Autoupdate Opera Browser
Wie man den Opera Browser einbindet und permanent updated ?
from selenium import webdriver from webdriver_manager.opera import OperaDriverManager driver = webdriver.Opera(executable_path=OperaDriverManager().install())
Für weitere Konfigurationen innerhalb des Paketes schaut bitte auf der Entwicklerseite. Gerade der Punkt der Automatisierung, ist dort noch ausführlich beschrieben.
Neueste Kommentare