Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
mein Problem ist wahrscheinlich für die meisten lächerlich allerdings bin ein Beginner und schäme mich deshalb auch nicht dafür
Ich habe Zwei Klassen.
In der Klasse A:
Java:
public class A{
WebDriver driver = new FirefoxDriver();
public static void main(String[] args) throws Exception {
A a = new A();
a.Login();
}
public void Login(String loginName, String loginPW) {
//Login
driver.get("irgendeine Seite");
driver.findElement(By.id("login_benutzer")).sendKeys(loginName);
driver.findElement(By.id("login_password")).sendKeys(loginPW);
driver.findElement(By.name("send")).click();
}
In dieser Klasse möchte ich über einen WebDriver eine bestimmte Homepage aufrufen und die Benutzerdaten zum einloggen automatisch eingeben. Es funktioniert perfekt.
Ich möchte nun die Strings loginName & loginPW aus der Klasse B holen und hier eingeben, da ich mehrere Benutzer habe.
Klasse B:
Java:
public class Zugangsdaten {
private String name;
private String password;
public void storeZugangsDaten(String name, String password) {
Hashtable<String, String> loginData = new Hashtable<String, String>();
loginData.put("Bruno", "pwBruno");
loginData.put("Günne", "pwGünne");
for (String item : loginData.keySet()) {
name = item;
password = loginData.get(item);
// System.out.println(name + " " + password);
}
}
}
Also wiegesagt, ich möchte aus Klasse B die Strings holen und in Klasse A verwenden.
Ich würde sagen, dass deine Klasse Zugangsdaten in der Klasse A enthalten sein muss, damit der dann darauf zugreifen kann...
D.h. du erstellst einfach in der Klasse A ein Objekt der Klasse B (was dann die Zugangsdaten irgendwo lädt) und dann per InstanzKlasseB.gibMirDeineStrings() die Hashmap bekommt
ich bin mir nicht sicher, ob ich deine vorweihnachtlichen Wünsche richtig verstehe - aber wenn ich das richtig sehe, möchtest du in der Klasse "Zugangsdaten" nicht nur einen, sonderen mehrere Logins ablegen? Dann sollte die HashTable, die du in storeZugangsDaten anlegst, möglicherweise eine Instanzvariable sein, denn sonst gehen die Inhalte ja beim Verlassen der Methode verloren. Also "loginData" eine Ebene höher schieben, damit die Daten erhalten bleiben - und dann noch eine Methode, um bei einem gegebenen Namen nach dem Passwort zu fragen. Wobei ich dann den Zweck dieser Klasse nicht verstehe, da sie dann nicht mehr kann, als die Hashmap bei direkter Verwendung in A auch schon könnte.
Also: Den Wunschzettel bitte etwas genauer formulieren oder warten, bis jemand kommt, der dich auf Anhieb versteht
so @rme, ich versteh mich meistens auch nicht :toll:
Im Prinzip möchte ich die Werte die ich in die HashTable eintrage in die Strings name + password in der Klasse B (mit der methode storeZugangsDaten) abspeichere. Dies tue ich indem ich folgendes mache:
in der for Schleife übergebe ich die loginDaten an die Strings name und password
So, jetzt möchte ich diese Strings in der Klasse A benutzen und der Methode Login(String loginName, String loginPW) übergeben
Java:
public class A{
WebDriver driver = new FirefoxDriver();
public static void main(String[] args) throws Exception {
A a = new A();
a.Login();
B b = new B();
b.storeZugangsDaten();
}
public void Login(String loginName, String loginPW) {
//Login
driver.get("irgendeine Seite");
driver.findElement(By.id("login_benutzer")).sendKeys(loginName);
driver.findElement(By.id("login_password")).sendKeys(loginPW);
driver.findElement(By.name("send")).click();
}
Hab ein paar sachen versucht, aber eventuell sollte ich lieber die Variablen aus der Klasse B in ein einfaches Array speichern, oder meint Ihr das müsste mit den HashTables auch funktionieren?