Suche…


Einführung

Dies ist eine Einführung in Selenium unter Verwendung von Java. Wir erwarten zwar nicht, dass Sie etwas über Selenium wissen, Sie müssen jedoch über Java-Kenntnisse verfügen, um diesen Kurs zu besuchen.

Download links :

Selen

IntelliJ IDEA

Chrome-Treiber

JDK 8

Einrichten der IntelliJ-Idee für Selen

Voraussetzungen:

  1. Java ist installiert
  2. Selen wird in einem Ordner extrahiert (enthält 2 Dateien und 1 Ordner)

Folgen Sie diesen Schritten, um IntelliJ Idea für Selenium einzurichten.

  1. Klicken Sie auf "Neues Projekt" .
  2. Wählen Sie Java <"Hello World" -Anwendung
  3. Geben Sie den Namen des Projekts ein und erstellen Sie es.

Ihr Bildschirm sollte ungefähr so ​​aussehen Geben Sie hier die Bildbeschreibung ein

Gehen Sie jetzt zu

File < Project Structure < Modules < Dependencies

Klicken Sie dort auf das grüne Pluszeichen ( + ) und wählen Sie Bibliothek. Navigieren Sie dann zum extrahierten Selenium-Ordner und fügen Sie " Selenium-java 2.4.0.jar " hinzu. Nachdem Sie dies hinzugefügt haben, klicken Sie erneut auf das grüne Pluszeichen ( + ) und wählen Sie "Verzeichnis". Suchen Sie diesmal den libs- Ordner von Selenium und klicken Sie beim Auswählen auf OK.

Am Ende sollte Ihre Projektstruktur so aussehen Geben Sie hier die Bildbeschreibung ein

Klicken Sie nun auf OK und Sie sind fertig.

ChromeDriver einrichten

Voraussetzungen: ChromeDriver wird heruntergeladen

Kopieren Sie den folgenden Code in Ihre Klasse.

public static void main(String[] args) {
    System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
}

Wenn Sie Linux verwenden, geben Sie den Pfad zur ChromeDriver-Binärdatei an.

Öffnen einer Website mit Selenium

Wir verwenden die get Methode, um zu einer Website zu gelangen. Zum Beispiel würde dies Google öffnen

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:www.google.com");
    Thread.sleep(3000); //wait for 3 seconds
    driver.quit();      //close Chrome
}

driver.quit() schließt den Browser. Um eine Verzögerung zu erzeugen, verwenden wir Thread.sleep(3000) .

Elemente in Selen erhalten

Jedes HTML-Element in Selenium wird als WebElement . Zum Beispiel kann ein p würde Tag sein , WebElement , ein a Tag wäre ein WebElement usw. Betrachten Sie die folgende HTML - Struktur:

<a id="link1" href="https://www.google.com">google</a>
<p class="p1">
This is a paragraph
</p>

Nun, wenn wir a Tag bekommen wollten, könnten wir das tun

WebElement link = driver.findElement(By.id("link1"));

Nun können wir auf das klicken, indem

link.click();

Nehmen wir ein anderes Beispiel. Wenn wir den Text des p Tags wünschen, dh " Dies ist ein Absatz ", können wir das tun

WebElement p = driver.findElement(By.className("p1"));
System.out.println(p.getText());

Wir können Elemente auch durch Tags erhalten, wie

WebElement tag = driver.findElement(By.tagName("a"));

Arbeitsbeispiel in Selen

Nun, da wir die Grundlagen von Selenium kennen, können wir unser eigenes Projekt machen. In diesem Beispiel erstellen wir ein Programm, das die neuesten Fragen zum Stapelüberlauf findet.

Wir fangen einfach an, lassen Stapelüberlauf öffnen.

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:stackoverflow.com");
    Thread.sleep(3000);
    driver.quit();
}

Nun, wenn Sie an der Quelle der Seite betrachten, finden Sie , dass alle Fragen, sind a Tags, mit einem von classname question-hyperlink . Da es jedoch mehrere Fragen sind, verwenden wir eine List von WebElement , statt WebElement . So können wir tun

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path to chromedriver\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:stackoverflow.com");
    List<WebElement> list = driver.findElements(By.className("question-hyperlink"));
}

Nun müssen wir das href Attribut des a Tags abrufen, das den Link der Frage enthält. Dazu können wir getAttribute("href") für jedes WebElement

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path to chromedriver\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:stackoverflow.com");
    List<WebElement> list = driver.findElements(By.className("question-hyperlink"));
    System.out.println(list.size());
    list.forEach(e->System.out.println(e.getAttribute("href")));
    driver.quit();
}

Dadurch werden die Links der Top-Fragen zu Stack-Overflow ausgedruckt.

Attribute von WebElements in Selenium abrufen

Um das Attribut eines WebElement , verwenden wir getAttribute für dieses WebElement . Betrachten Sie beispielsweise das folgende HTML-Tag

<a id="click" href="https://www.google.com">

Wir können das href Attribut des Elements mit finden

WebElement e = driver.findElement(By.id("click"));
System.out.println(e.getAttribute("href")); //prints https://www.google.com


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow