seleniumAan de slag met selenium


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

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();
 

Eenvoudige Selenium-test op Java

Onderstaande code is een eenvoudig Java-programma dat selenium gebruikt. De reis van de onderstaande code is

  1. Open Firefox-browser
  2. Open google-pagina
  3. Titel van Google-pagina afdrukken
  4. Zoek de locatie van het zoekvak
  5. Geef de waarde door als Selenium in het zoekvak
  6. Verzend het formulier
  7. 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()