# Selenium ?!



## Tiescher (1. Mai 2011)

Hallo,

ich versuche zur Zeit mit Selenium zu arbeiten (habe erstmal nur versucht einen Loggin damit zumachen).
Das Aufzeichnen geht ja noch, aber wie kompiliere ich dann den Code, sodass ich am Ende einen Klasse X habe, die diesen Test ausführt.


----------



## helloselen (1. Mai 2011)

du kannst nicht auf alle elemente der seite zugreifen, das bringt damit nichts..


----------



## Tiescher (1. Mai 2011)

wie ??
auf alle Elemente der Html Seite ???

naja doch die Java datein in Class datein kompilieren und dann mehrere Test wie zu einer Art Programm zusammen fassen ... und ja es ist dabei wichtig das jeder Test ne eigene Klasse ist .


----------



## hartzie (1. Mai 2011)

soweit ich das noch in Erinnerung habe, muss du die Aufzeichnung exportieren als JUnit Test. Diesen Test kannst du dann in ein Projekt ganz normal verwenden. Nur brauchst du ein Selenium Testserver wodrauf dann die Tests und die darin enthaltene "Aufzeichnung" ablaufen sollen.


----------



## Tiescher (1. Mai 2011)

mh das hab ich ja auch so gemacht, dann hatte ich die Java Datei...

aber beim Kompilieren kamen dann die Probleme andauern NullPointer ...
ich hab ja auch die Klassen gedownloaded die man normaö zum Kompilieren brauch und den Classpath drauf gesetzt ... geht trotzdem nicht 

und wie das dann mit der RemoteControl funktioniert wei0 ich auch nicht. Sry aber google bringt mich da ech nicht weiter weil da die Tutorials alle zu allgemein sind und nicht auf Java bezogen ...

wäre also sehr nett wenn sich jmd die Zeit nehmen könnte und dann das mal Step by Step eklären  BITTE


----------



## maki (1. Mai 2011)

> wäre also sehr nett wenn sich jmd die Zeit nehmen könnte und dann das mal Step by Step eklären BITTE


Klar, für 70,- € die Stunde findet sich viellecith ein Termin 

Ansonsten wirst du die Doku wohl selber lesen müssen, inkl. Beispielen usw., bei konkreten Fragen kannst du ja Google, die Selenium Jungs oder uns hier fragen (reihenfolge).

Selenium 2.0 and WebDriver &mdash; Selenium Documentation


----------



## helloselen (2. Mai 2011)

> You can see that WebDriver acts just as a normal library does: it’s entirely self-contained, and you usually don’t need to remember to start any additional processes or run any installers before using it, as opposed to the proxy server with Selenium-RC.



klingt recht eindeutig - HtmlUnit Driver benötigt keinen browser



maki hat gesagt.:


> Klar, für 70,- € die Stunde findet sich viellecith ein Termin



es ist immer noch ein forum, wo jeder alles und alle alles mögliche schreiben kann


----------



## maki (2. Mai 2011)

> es ist immer noch ein forum, wo jeder alles und alle alles mögliche schreiben kann


Eben, dazu gehören sowohl deine als auch meine Antworten


----------



## Tiescher (2. Mai 2011)

mh die Codes die die in dem Tutorial sind, sind aber ganz anders als wenn ich die mit Selenium IDE aufzeichne ...

weil wenn ich (wie die im TUt) nach cheese suche sxieht das so aus :

```
package com.example.tests;

import com.thoughtworks.selenium.*;
import java.util.regex.Pattern;

public class Untitled extends SeleneseTestCase {
	public void setUp() throws Exception {
		setUp("http://www.google.de/", "*iexplorer");
	}
	public void testUntitled() throws Exception {
		selenium.open("/");
		selenium.type("q", "cheese");
	}
}
```

so jetzt mal das als Beispiel ...
Ersten will ich das gar nicht in dem Package haben, was ja aber denke ich dazu führt das das mit "extends .." nicht mehr geht !

also weiß ich nich...

a. wo ich die Selenium-Server-Standalone.jar hinpacken muss.
b. wo ich die Ganzen Klassen von dem ClientDriver hinpacken muss (ich denke mal das ich die Brauche um das ganze zu kompilieren)
und  c. wie ich das machen kann, dass die Klassen in einem anderen Package bzw in gar keinem Pakcage ist.

PS: 70€ hab ich grade nich aber es dauert ja auch bei weitem keine Std. , aber wer mir die Fragen beantwortet kann gerne einen freundlichen virtuellen Händedruck haben 

danke schonmal


----------



## Tiescher (2. Mai 2011)

kennt sich denn hier niemand mit Selenium aus ???
oder will mir keiner helfen:/


----------



## helloselen (2. Mai 2011)

maki hat gesagt.:


> Eben, dazu gehören sowohl deine als auch meine Antworten



ach, du bist mod, das hab ich natürlich übersehen; die lassen sich besonders ungern etwas dazwischenreden 

dann finde mal jemanden, der dir deine 70 € gibt ^^

"angebot: für 70 € erklärt bekommen, wie man netbeans ein jar hinzufügt" LoL


----------



## hartzie (2. Mai 2011)

> kennt sich denn hier niemand mit Selenium aus ???
> oder will mir keiner helfen:/


Doch natürlich kennen sich Leute damit aus. Aber das Problem liegt nicht bei Selenium, sondern bei dir. Auch das Helfen ist so eine Sache für sich. Bei deinem Wissensstand wären das gute 3 oder 4 Stunden verzweifelter Kampf und das ohne Bezahlung. Sowas ist dreiste Abzocke und viele haben es erlebt und helfen deswegen bei solchen Posts nicht. Setz dich hin arbeite vernünftig die Tutorials durch und stelle dann konkrete Fragen. Ich musste mich da auch einarbeiten und das hat wirklich nicht lange gedauert.


----------



## Tiescher (2. Mai 2011)

ich habe doch aber drei ganz klare Fragen gestellt !?


----------



## mvitz (2. Mai 2011)

Bevor du gar keine Antworten bekommst hier meine Antworten (Achtung, hab auch noch nicht viel mit Selenium gemacht):

a) Die standalone-server.jar brauchst du nur um den Selenium Remote Server zu starten. Auf diesen können anschließend Clients connecten um die Tests auszuführen. Wenn die Test auf dem Client selber laufen sollen, kann man sich den afaik auch sparen.

b) Richtig, das JAR mit dem ClientDriver musst du in deinen Classpath aufnehmen um die Tests zu kompilieren und auszuführen.

c) Wer hindert dich daran deine Tests in ein anderes Package zu packen?


----------



## hartzie (2. Mai 2011)

Ich glaube mal das größte Hindernis ist zu wenig Wissen in Java. Die Package-Frage war auf den Test bezogen den er oben gepostet hat. Das Schlüsselwort 
	
	
	
	





```
package com.example.tests;
```
 fiel ihm wohl nicht ins Auge. Oder liege ich da etwa falsch?


----------



## Tiescher (3. Mai 2011)

a)na ich denke mal wenn ich das auf meinem eigenen Computer laufen lassen will bin ich der Client oder nich ???
  (es geht im endeffekt darum eine Anmeldung, die bereits online ist zu testen)

b) Die Clientdriver sind aber keine jar sonder gaaanz viele Ordner ... bzw eine zip datei die man entpacken muss ?!

c)nach meinem wissen kann doch nur eine Klasse mit "extends ...." erweitert werden - in diesem Fall soll sie durch die Klasse SelenseTestCase erweitert werden - wenn sie sich im selben Verzeichnis bzw. im selben Package befindet ....
also ist das eher eine grundlegende Frage von mir welche Variante man ânstelle von "extends...." benutzen könnte ...


----------



## hartzie (3. Mai 2011)

zu a) les dir Client Server Prinzipien mal durch. Du kannst gleichzeitig der Server und der Client sein...

zu b) Lies dir mal die Selenium Dokumentation durch. Da steht genauestens wie du die externen Libraries einbinden kannst.

zu c) deine Frage war auf Packages bezogen und nicht auf Vererbung... versuch doch zu erklären was du machen willst, dann kann man die Frage vielleicht besser verstehen.


----------



## helloselen (3. Mai 2011)

zu c) : er will eine klasse mit extends erweitern... wenn die klasse nicht als final, private, default oder protected deklariert ist (da außerhalb des package), geht es meines wissens auch, sollte aber nicht gemacht werden, denn die lib ist so zu verwenden, dass du bestimmte instanzen erzeugst und darauf operationen (methodenaufrufe) durchführst.


----------



## Tiescher (3. Mai 2011)

c) also wenn ich mit Selenium IDE das aufzeichne dann wird das ja warum auch immer zu diesem Package hinzugefügt also wird automatisch meine Klasse (der Test) durch die Klasse SelenseTestCase erweitert ... 

a) also könnte ich das auch ohne die RemoteControl ausführen ... ich dachte das brauch man schon wenn man einfach mit der Test-Klasse zb Firefox öffnen will ^^

b) ja ok das hatte ich ja soweit schon alles hinbekommen ....


----------



## Tiescher (4. Mai 2011)

???????


----------



## Tiescher (6. Mai 2011)

also ich hab nun mal diese Dokumentation durchgearbbeitet : Java Client Driver Configuration &mdash; Selenium Documentation

aber ich versteh nicht wo jetzt mein Test hinkommt ... ?? 
und woher ich die Klasse SeleneseTestCase nehme ?


----------



## Guardi (6. Mai 2011)

Die Klasse SeleneseTestCase ist in der client-driver.jar

Unter anderem enthält diese Klasse die Selenium-Instanz, die frei konfigurierbar ist und auf der du auch
die Aufrufe zum Testen machst.


----------



## Tiescher (8. Mai 2011)

Also ich habe nun mal versucht einen Test bzw ein Testsuite im Html Format mithilfe der Selenium-Server.jar im Cmd auszuführen .
Ging alles wunderbar:  hab die Argumente dazu eingegeben und schon gings.

Aber für meine Zwecke müssten die Tests unbedingt im Java-Format sein... da sie in ein umfangreicheres Projekt eingebunden werden sollen.

Also ich bin jetzt so weit: ich habe einen Test mit Selenium IDE aufgezeichnet und dann die Testsuite und den Test als .java-Dateien
exportiert. 
Jetzt wäre ja der nächste Schritt die beiden Klassen zu kompilieren und genau daran scheiterts, weil es genau dazu keine Anleitungen im Inet gibt. 
Mittlerweile frage ich mich überhaupt ob man die Klassen kompilieren muss ?

Bitte könnte mir jmd erklären wie man diese Klassen kompiliert ?! Ich bin echt am verzweifeln mit diesem Programm...


----------



## hartzie (8. Mai 2011)

Wie versuchst du es denn zu Übersetzen? Also welche IDE oder welches Buidltool, welches Betriebssystem? Ich jedenfalls habe gute Erfahrung mit Maven und dem Plugin für Selenium.


----------



## Tiescher (8. Mai 2011)

- kompilieren mit der Konsole von Windoof (also CMD)
- Java-Developement-Kit  1.6.0_24
- Windows Vista 32bit 

habe es auch versucht mit Eclipse - also als Projekt und da alles reinpacken wie in der Doku von Selenium - aber so genau bin ich da auch nicht schlau geworden wo man da was hin tuen soll und wie man das kompiliert, ich habs paar mal versucht aber immer kam dann beim Kompilieren, dass:

- import com.....selenium.* nich gefunden werden kann 
- demzufolge auch alle Klassen nicht 
- dass SelenesTestCase nicht gefunden werden kann


----------



## hartzie (8. Mai 2011)

dann poste doch mal dein Kommando zum Kompilieren.


----------



## Tiescher (8. Mai 2011)

naja 
zuerst:"cd C:\Selenium"
dann:"javac -classpath C:\....\selenium-client-driver.jar Untitled.java"

dann komm halt die genannten Fehler


----------



## hartzie (9. Mai 2011)

hm ich weiss ja nicht wo du dir jar herhast aber so wie ich das auf der seleniumseite gefunden habe ist in der selenium-java-2.0b3.jar im seleniumpacket die SeleniumTestCase Klasse drin. Die JarDateien sind Zipformate. Also öffne die Jar die du da hast mit einem Entpacker und schau nach ob die Classdatei da überhaupt drin ist.


----------



## Tiescher (9. Mai 2011)

ja die sind drinne ...

aber kann es sein das ich auch die Testsuite brauche, also das ich die zuerst kompilieren muss und diese dann im Classpath angeben muss bzw ins selbe verzeichnis packen wie die TestCase.java die ich kompilieren will.

Und wenn das so ist brauche ich dann auch noch junit ?

Weil jetzt habe ich es nochmal versucht und es kam als Fehler nicht mehr, dass es SeleneseTestCase nicht finden kann und die anderen Packages, sondern nur irgendein Fehler mit junit (das würde ich eben darauf zurück führen das ich kein junit habe)

und dann noch das es die ganzen Objekt ("setUp", "selenium" usw) nicht finden kann... obwohl es ja eigentlich die Klasse selenium im angegebenen Package (Com.thoughtworks.selenium.* gibt.


----------



## ARadauer (9. Mai 2011)

Warum baust du das auf der Konsole?
Nimm doch eine IDE!

Ich versteh ja wenn viele sagen, dass man die ersten Schritte auf der Konsole machen soll... aber ein paar fremde Jars zu benutzen und dann auf der Konsole zu baun, das würd ich nicht machen...


----------



## Tiescher (9. Mai 2011)

ja ok das ist vll nicht das einfachste aber bitte noch mal zurück zu meinem letzten post ...

ausserdem brauche ich ja nur eine jar im Classpath ...
und wenn ich erstmal weiß wies geht werde ich auch Eclipse benutzen


----------



## maki (9. Mai 2011)

Selenium braucht JUnit (und noch ein paar andere Dinge wenn ich mich nicht irre).


----------



## ARadauer (9. Mai 2011)

http://seleniumhq.org/docs/_images/chapt5_img17_Configure_Build_Path.png

Selenium hat so eine ausführliche doku....


----------



## Tiescher (11. Mai 2011)

wenn man jetzt die Klasse startet, öffnet das ja immer ein Fenster in dem der Test gemacht wird (also Browser)
und dann nochmal nen Browser, in dem sozusagen der Ablauf ist 

kann man das zweite Fenster iwie unterdrücken ???


----------



## hartzie (12. Mai 2011)

Das ist eine wichtige Ansicht. Wenn irgendwas schief läuft siehst du das da drin und kannst darauf reagieren. Dich durch die Logs zu schlagen ist eine frickelige Arbeit.
Also lass das mal lieber drin.
Aber schön das es endlich mal läuft .


----------



## Tiescher (12. Mai 2011)

das kannste laut sagen .... 

danke an alle für die Hilfe und die Tips.


----------

