selenium
Erstes Projekt in Selen mit Java
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 :
Einrichten der IntelliJ-Idee für Selen
Voraussetzungen:
- Java ist installiert
- Selen wird in einem Ordner extrahiert (enthält 2 Dateien und 1 Ordner)
Folgen Sie diesen Schritten, um IntelliJ Idea für Selenium einzurichten.
- Klicken Sie auf "Neues Projekt" .
- Wählen Sie Java <"Hello World" -Anwendung
- Geben Sie den Namen des Projekts ein und erstellen Sie es.
Ihr Bildschirm sollte ungefähr so aussehen
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
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