selenium Tutorial
Erste Schritte mit Selen
Suche…
Bemerkungen
Selenium ist eine leistungsstarke Bibliothek mit Befehlen in mehreren Sprachen (C #, Haskell, Java, JavaScript, Objective-C, Perl, PHP, Python, R und Ruby), mit denen Programmierer die Browser-Interaktion automatisieren können. Dies ist sehr nützlich für Entwickler, die Anwendungen testen.
Selen bietet Methoden an:
- Finden Sie ein Element auf einer Webseite
- Klicken Sie auf ein Element
- Senden Sie einen String an ein Element
- Navigieren Sie zu einer Webseite
- Wechseln Sie zu einer anderen Registerkarte im selben Browserfenster
- Machen Sie einen Screenshot einer Webseite
Mit diesen Methoden kann ein Entwickler automatische Tests überprüfen:
- Wenn sich ein Element auf einer Seite befindet und für einen Benutzer sichtbar ist
- Ein Such- oder Anmeldeformular
- Schaltflächen oder interaktive Elemente
- Überprüfen Sie die Werte oder Attribute eines Elements
Selenium wird in Webtreibern ausgeführt, die einem normalen Webbrowser ähneln, jedoch mit Selenium interagieren können. Bei einem Selenium-Test wird in der Regel eine neue Treiberinstanz des Browsers geöffnet, in dem der Entwickler gerade testet. Dabei handelt es sich immer um eine saubere Tabelle. Auf diese Weise muss sich der Entwickler beim Ausführen eines Selenium-Tests nicht um vorherige Cookies oder einen Browser-Cache kümmern, der die Ergebnisse seiner Anwendung beeinflusst.
Selen funktioniert auch, wenn ein Web-Treiber im Headless-Modus ausgeführt wird.
Versionen
Ausführung | Veröffentlichungsdatum |
---|---|
3.4.0 | 2017-04-11 |
3.3 | 2017-04-07 |
3.2 | 2017-02-27 |
3.1 | 2017-02-13 |
3.0.1 | 2016-11-19 |
3,0 | 2016-10-11 |
Einfacher Selen-Test in Java
Der folgende Code ist ein einfaches Java-Programm, das Selen verwendet. Die Reise des folgenden Codes ist
- Öffnen Sie den Firefox-Browser
- Google-Seite öffnen
- Titel der Google-Seite drucken
- Suchen Sie den Ort des Suchfelds
- Übergeben Sie den Wert als Selenium im Suchfeld
- Senden Sie das Formular
- Fahren Sie den Browser herunter
package org.openqa.selenium.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import java.util.concurrent.TimeUnit;
public class Selenium2Example {
public static void main(String[] args) {
// Create a new instance of the Firefox driver
WebDriver driver = new FirefoxDriver();
// An implicit wait is to tell WebDriver to poll the DOM for a certain amount of time
// when trying to find an element or elements if they are not immediately available.
// The default setting is 0. Once set, the implicit wait is set for the life of the WebDriver object instance.
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
// Maximize the browser window to fit into screen
driver.manage().window().maximize();
// Visit Google
driver.get("http://www.google.com");
// Check the title of the page
System.out.println("Page title is: " + driver.getTitle());
// Find the text input element by its name
WebElement element = driver.findElement(By.name("q"));
// Enter something to search for
element.sendKeys("Selenium!");
// Now submit the form. WebDriver will find the form for us from the element
element.submit();
//Close the browser
driver.quit();
}
}
Einfacher Selentest in Python
from selenium import webdriver
# Create a new chromedriver
driver = webdriver.Chrome()
# Go to www.google.com
driver.get("https://www.google.com")
# Get the webelement of the text input box
search_box = driver.find_element_by_name("q")
# Send the string "Selenium!" to the input box
seach_box.send_keys("Selenium!")
# Submit the input, which starts a search
search_box.submit()
# Wait to see the results of the search
time.sleep(5)
# Close the driver
driver.quit()
Einrichten von Python-Selen über das Terminal (BASH)
Der einfachste Weg ist die Verwendung von pip und VirtualEnv . Selen erfordert auch Python 3. * .
Installieren Sie Virtualenv mit:
$: pip install virtualenv
Erstellen Sie ein Verzeichnis für Ihre Selenium-Dateien:
$: cd my_selenium_project
Erstellen Sie im Verzeichnis für Ihre Selenium-Dateien ein neues VirtualEnv:
$: virtualenv -p /usr/bin/python3.0 venv
Aktivieren Sie das VirtualEnv:
$: source venv/bin/active
Sie sollten jetzt (venv) am Anfang jeder Bash-Zeile sehen. Installieren Sie Selenium mit pip:
$: pip install selenium
Selen wird standardmäßig mit dem FireFox-Treiber geliefert.
Wenn Sie Selenium in Google Chrome ausführen möchten, führen Sie auch Folgendes aus:
$: pip install chromedriver
Sie haben jetzt eine versionsgesteuerte VirtualEnv. Um sicherzustellen, dass alles korrekt eingerichtet ist:
Python starten:
$: python
Druckt aus:
Python 2.7.10 (default, Jul 14 2015, 19:46:27)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Erstellen Sie einen neuen Web-Treiber (in diesem Fall einen Chrom-Treiber) und gehen Sie zu www.google.com:
>>> from selenium import webdriver
>>> driver = webdriver.Chrome()
>>> driver.get("https://www.google.com")
Schließen Sie den Treiber und den Python-Interpreter:
>>> driver.quit()
>>> quit()
Deaktivieren Sie VirtualEnv:
$: deactivate
Wenn der Zeilentreiber driver = webdriver.Chrome()
Fehler driver = webdriver.Chrome()
:
- Stellen Sie sicher, dass Sie auch den Chrome-Browser installiert haben. Wenn Sie dies nicht tun, kann der Selen-Chrom-Treiber nicht auf die Chrome-Binärdatei zugreifen.
- webdriver.Chrome () kann auch einen Parameter für Ihren Chromedriver-Speicherort übernehmen. Wenn Sie es mit pip installiert haben, versuchen Sie (auf einem Mac)
driver = webdriver.Chrome("./venv/selenium/webdriver/chromedriver")
.
Einfaches Selen-Beispiel in C #
//Create a new ChromeDriver
IWebDriver driver = new ChromeDriver();
//Navigate to www.google.com
driver.Navigate().GoToUrl("https://www.google.com");
//Find the WebElement of the search bar
IWebElement element = driver.FindElement(By.Name("q"));
//Type Hello World into search bar
element.SendKeys("Hello World");
//Submit the input
element.Submit();
//Close the browser
driver.Quit();