selenium Zelfstudie
Aan de slag met selenium
Zoeken…
Opmerkingen
Selenium is een krachtige bibliotheek met opdrachten in meerdere talen (C #, Haskell, Java, JavaScript, Objective-C, Perl, PHP, Python, R en Ruby) waarmee een programmeur browserinteractie kan automatiseren. Dit is ongelooflijk handig voor ontwikkelaars die applicaties testen.
Selenium biedt methoden om:
- Zoek een element op een webpagina
- Klik op een element
- Stuur een tekenreeks naar een element
- Navigeer naar een webpagina
- Ga naar een ander tabblad in hetzelfde browservenster
- Maak een screenshot van een webpagina
Met deze methoden kan een ontwikkelaar automatische testcontroles uitvoeren:
- Als een element op een pagina staat en zichtbaar is voor een gebruiker
- Een zoek- of inlogformulier
- Knoppen of interactieve elementen
- Controleer de waarden of kenmerken van een element
Selenium werkt in webdrivers, die vergelijkbaar zijn met een normale webbrowser, maar waarmee Selenium ermee kan communiceren. Een Selenium-test opent meestal een nieuw stuurprogramma-exemplaar van de browser waarin de ontwikkelaar test, wat altijd een schone lei is. Op deze manier hoeft de ontwikkelaar zich bij het uitvoeren van een Selenium-test geen zorgen te maken over eerdere cookies of een browsercache die de resultaten van hun applicatie beïnvloedt.
Selenium werkt ook bij het uitvoeren van een webdriver in headless-modus.
versies
Versie | Publicatiedatum |
---|---|
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 |
Eenvoudige Selenium-test op Java
Onderstaande code is een eenvoudig Java-programma dat selenium gebruikt. De reis van de onderstaande code is
- Open Firefox-browser
- Open google-pagina
- Titel van Google-pagina afdrukken
- Zoek de locatie van het zoekvak
- Geef de waarde door als Selenium in het zoekvak
- Verzend het formulier
- Sluit de browser af
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();
}
}
Eenvoudige seleniumtest 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()
Python Selenium instellen via terminal (BASH)
De eenvoudigste manier is om pip en VirtualEnv te gebruiken . Selenium vereist ook python 3. * .
Installeer virtualenv met:
$: pip install virtualenv
Maak / voer een map aan voor uw Selenium-bestanden:
$: cd my_selenium_project
Maak een nieuwe VirtualEnv in de map voor uw Selenium-bestanden:
$: virtualenv -p /usr/bin/python3.0 venv
Activeer de VirtualEnv:
$: source venv/bin/active
Je zou nu moeten zien (venv) aan het begin van elke bash-regel. Installeer Selenium met pip:
$: pip install selenium
Selenium wordt standaard geleverd met het FireFox-stuurprogramma.
Als u Selenium in Google Chrome wilt uitvoeren, doet u dit ook:
$: pip install chromedriver
U hebt nu een versie-gecontroleerde VirtualEnv. Om ervoor te zorgen dat alles correct is ingesteld:
Start python:
$: python
Prints:
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.
Maak een nieuwe webdriver (in dit geval een chromedriver) en ga naar www.google.com:
>>> from selenium import webdriver
>>> driver = webdriver.Chrome()
>>> driver.get("https://www.google.com")
Sluit de driver en de python-interpreter:
>>> driver.quit()
>>> quit()
Deactiveer de VirtualEnv:
$: deactivate
Als de driver = webdriver.Chrome()
fouten gooit:
- Zorg ervoor dat u ook de Chrome-browser hebt geïnstalleerd. Als u dit niet doet, heeft de Selenium-chromedriver geen toegang tot het binaire bestand van Chrome.
- webdriver.Chrome () kan ook een parameter gebruiken voor uw chromedriver-locatie. Als je het hebt geïnstalleerd met pip, probeer dan (op mac)
driver = webdriver.Chrome("./venv/selenium/webdriver/chromedriver")
.
Eenvoudig Selenium-voorbeeld 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();