3 Stimmen

Java Aktionen auf einer Webseite ausführen

Gestern habe ich das Abrufen von Daten in Java gepostet. Ich frage mich, ob es möglich ist, ein Java-Programm auszuführen, während ein Webbrowser geöffnet ist und dann auf einer Website etwas zu tun. Wenn ich Facebook in einem Browser geöffnet habe, könnte es die aktuelle Uhrzeit im Statusfeld eingeben und dann auf "Posten" klicken? Oder sagen wir, ich mache das Programm in der Lage, Eingaben vom Benutzer entgegenzunehmen (vielleicht mit Scanner?) und dann basierend auf der Eingabe Google laden, sie in die Suchleiste eingeben und dann auf "Suchen" klicken.

4voto

PrimosK Punkte 13635

Sie können dies tun, indem Sie Selenium verwenden:

Selenium automatisiert Browser. Das ist alles. Was Sie mit dieser Power machen, liegt ganz bei Ihnen. Hauptsächlich dient es der Automatisierung von Webanwendungen zu Testzwecken, aber es ist sicherlich nicht nur darauf beschränkt. Auch langweilige webbasierte Verwaltungsaufgaben können (und sollten!) automatisiert werden.

Dies ist ein Beispiel von der Dokumentationsseite, die nach dem Begriff "Käse" auf Google sucht:

paket org.openqa.selenium.beispiel;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;

public class Selenium2Beispiel  {
    public static void main(String[] args) {
        // Erstelle eine neue Instanz des Firefox-Treibers
        // Beachten Sie, dass der Rest des Codes auf der Schnittstelle basiert,
        // nicht auf der Implementierung.
        WebDriver treiber = new FirefoxDriver();

        // Und jetzt verwenden Sie dies, um Google zu besuchen
        treiber.get("http://www.google.com");
        // Alternativ kann dasselbe auch so gemacht werden
        // treiber.navigate().to("http://www.google.com");

        // Finde das Texteingabeelement nach seinem Namen
        WebElement element = treiber.findElement(By.name("q"));

        // Geben Sie etwas ein, nach dem gesucht werden soll
        element.sendKeys("Käse!");

        // Jetzt das Formular absenden. Der WebDriver findet das Formular für uns aus dem Element
        element.submit();

        // Überprüfen des Titels der Seite
        System.out.println("Seitentitel ist: " + treiber.getTitle());

        // Die Google-Suche wird dynamisch mit JavaScript gerendert.
        // Warten Sie, bis die Seite geladen ist, Timeout nach 10 Sekunden
        (new WebDriverWait(treiber, 10)).until(new ExpectedCondition() {
            public Boolean apply(WebDriver d) {
                return d.getTitle().toLowerCase().startsWith("käse!");
            }
        });

        // Sollte sehen: "Käse! - Google Suche"
        System.out.println("Seitentitel ist: " + treiber.getTitle());

        // Browser schließen
        treiber.quit();
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X