HTTP Selenium button klicken

Mansi

Neues Mitglied
Hallo liebes java-forum,


ich bin gerade dabei Java zu lernen. Die Basics sollte ich durch andere Programmiersprache wie z.B. .NET,C# und C++ drauf haben.

Mein zweites Größeres Projekt ist nun ein Web-Bot, der sich automatisch auf einer Website anmelden soll und von dieser Informationen auslesen soll. Mit .Net habe ich schon eine Lösung für eine ähnliche Website die zwar unelegant(läuft mir RegularExpression und IE-Control) aber funktionstüchtig ist.

Ich habe mich dann erst mal in die Materie eingelesen und bin dabei auf Selenium gestoßen. Mit Selenium soll ein solcher Bot deutlich einfacher zu machen sein als mit den Java internen funktionen.

Bis jetzt ist es wirklich erstaunlich einfach. Hier mal mein Code den ich bisher habe:

Java:
        // Erstellt einen neuen WebDriver und füllt diesen mit dem Sourcecode von 
        // der Webseite
        WebDriver driver = new HtmlUnitDriver();
        driver.get("*Link zur Webseite*");

        // Sucht die Textfelder für die Benutzernamen/Passwort Eingabe und füllt diese
        WebElement loginData = driver.findElement(By.name("user"));
        loginData.sendKeys("username");
        loginData = driver.findElement(By.name("password"));
        loginData.sendKeys("passwort");
        
        // Schickt die Seite ab
        loginData.submit();

        // Gibt den Seitentitel aus
        System.out.println("Page title is: " + driver.getTitle());


Das eintragen der login-Daten funktioniert einwandfrei. Allerdings habe ich schwierigkeiten, den Knopf für den Login zu finden und zu klicken(ein einfaches "submit" reicht leider nicht aus). Der Code des Buttons der gedrückt werden soll sieht so aus:

HTML:
<a class="login_button" onclick="$('#login_form').trigger('submit'); return false;" href="#">
<span class="button_left"></span>
<span class="button_middle">Login</span>
<span class="button_right"></span>
</a>


Hat jemand von euch eine Idee, wie ich diesen Button mit Hilfe von Selenium drücken kann ?



Grüße,


Mansi



PS: Ich hoffe das hier ist das richtige Unterforum dafür
 
Hi,


mir geht es nicht um das eigentliche Klicken, sondern ehr um das finden bzw. auswälen den Buttons.

Ich habe noch ein bischen rumprobiert und es geschafft, den Login button zu drücken.
Er finden den Button über die "class".

Jetzt habe ich allerdings noch einen zweiten Button, der durch ein Javascript sichtbar gemacht wird wenn auf den Login-Button gedrückt wird.

Die Signatur des Buttons sieht so aus:

HTML:
<a onclick="return Index.submit_login('server_de79');" href="#">
<span class="world_button_active">Server 3</span>
</a>

Bei diesem Button funktioniert das lokalisieren bzw. auswählen mit
Code:
driver.findElement(By.className("world_button_active));
leider nicht.

Gibt es noch eine andere möglichkeit diesen Button aus zu wählen und anschließend mit dem
Code:
click();
-Command zu klicken ?
 

Neue Themen


Zurück
Oben