Einführung in Selenium
Bisher haben wir Unit-Tests geschrieben, um die Funktionalität von Codeeinheiten zu testen. Für das Testen umfassenderer Funktionen wie das Login- und Registrierungssystem können wir jedoch keine Unit-Tests mehr verwenden, da es sich nicht mehr um eine einzelne Einheit handelt, sondern um eine Kombination mehrerer Einheiten und Komponenten des Programms, die zusammenarbeiten, um eine Funktion zu bilden.
Eine Möglichkeit, Funktionen wie das Login-System zu testen, besteht darin, die Website manuell zu verwenden und die Ergebnisse zu überprüfen; das würde jedoch als manuelles Testen betrachtet werden. Es gibt Tools, die uns helfen, die Browser zu automatisieren und verschiedene Operationen wie das Besuchen der Website, das Eingeben von Daten und das Interagieren mit Elementen durchzuführen. Diese Tools können zusammen mit einem Test-Framework wie Jest oder Mocha verwendet werden, um solche Tests durchzuführen.
Das folgende Video stellt eines dieser Tools vor und bietet ein Tutorial, wie man es in unsere Node-Anwendung integriert.
Code
Beachten Sie, dass es nicht wichtig ist, den in diesem Kapitel verwendeten Code zu analysieren und zu verstehen. Die meisten Funktionen und Methoden in diesem Code werden in den kommenden Kapiteln behandelt.
js99123456789101112131415161718192021222324252627282930313233343536373839404142434445const { Builder, By, Key, until } = require('selenium-webdriver');const chrome = require('selenium-webdriver/chrome');const path = require('path');// Helper function to wait for a specified number of millisecondsconst sleep = (milliseconds) => {return new Promise(resolve => setTimeout(resolve, milliseconds));};(async () => {let chromeDriverPath = path.resolve('path/to/webdriver.exe');let service = new chrome.ServiceBuilder(chromeDriverPath);let options = new chrome.Options();options.addArguments('--disable-search-engine-choice-screen');options.addArguments('--lang=en-GB');let driver = await new Builder().forBrowser('chrome').setChromeService(service).setChromeOptions(options).build();try {await driver.get('https://www.google.com');let btn_xpath = '/html/body/div[2]/div[2]/div[3]/span/div/div/div/div[3]/div[1]/button[2]'await driver.wait(until.elementLocated(By.xpath(btn_xpath)), 5000);let button = await driver.findElement(By.xpath(btn_xpath));await button.click();let searchBox = await driver.findElement(By.name('q'));await searchBox.sendKeys('cats', Key.RETURN);await driver.wait(until.elementLocated(By.linkText('Images')), 5000);let imagesLink = await driver.findElement(By.linkText('Images'));await imagesLink.click();await sleep(10000);} finally {await driver.quit();}})();
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen