Ich versuche, mithilfe von Selenium WebDriver bestimmte Werte in verschiedene Textfelder einzugeben. Dabei werden Try-Block- und If-Else-Anweisungen verwendet. Element und stellen Sie dann basierend auf diesem einzelnen Element den entsprechenden Wert bereit. Mein Problem ist, dass meine if-Anweisungen scheinbar als "falsch" gelesen werden, da jedes Mal, wenn die if-else-Anweisung durchgelesen wird, sie in die else {block-and-prints "error" geht.Suchen und Bereitstellen von Werten für Webelemente mithilfe von if-else-Anweisungen in Selenium WebDriver
Ich habe bereits die String-Werte von element.getAttribute ("id") überprüft, und sie sind gleich den Werten, die ich in der If-else-Anweisung angegeben habe.
Ich habe einige graben gemacht und während ich einige if-else-Anweisungen in Bezug auf Element Sichtbarkeit und die Verwendung von element.isEnabled() gefunden habe, habe ich nichts gefunden, wo element.getAttribute() String-Werte verwendet werden, um bestimmte zu finden Web-Elemente und senden Sie anschließend Werte.
Hier ist mein Code:
WebDriver Treiber;
@Test
public void enterInfo() throws Exception {
System.setProperty("webdriver.gecko.driver","C:\\Users\\Kohout\\Documents\\geckoDriver\\geckodriver.exe");
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
driver = new FirefoxDriver();
driver.get("http://www.firstcry.com/");
Thread.sleep(3000L);
WebElement element = driver.findElement(By.id("Email"));
typingInfo(element);
Thread.sleep(2000L);
element = driver.findElement(By.id("mobileprefix"));
typingInfo(element);
Thread.sleep(2000L);
element = driver.findElement(By.id("Mobile"));
typingInfo(element);
}
public void typingInfo(WebElement element) throws AWTException {
String email = "[email protected]";
String countryCode = "1";
String phoneNumber = "555-318-9357";
try {
if(element.getAttribute("id") == "Email") {
System.out.println("Commencing command...");
element.sendKeys(email);
} else if (element.getAttribute("id") == "mobileprefix") {
System.out.println("Commencing command...");
element.sendKeys(countryCode);
} else if (element.getAttribute("id") == "Mobile") {
System.out.println("Commencing command...");
element.sendKeys(phoneNumber);
} else {
System.out.println("Error");
}
} catch (Throwable t) {
System.out.println(t.getStackTrace());
}
Vielen Dank für Ihre Hilfe und Vorschläge.
Können Sie das Attribut in 'else' Block drucken? 'System.out.println (element.getAttribute (" id ")); System.out.println ("Error"); ' – Buaban
Wird benötigt, um die Funktion equals() anstelle von == zu verwenden, wenn Strings verglichen werden. Große Antworten auf das Problem unten. –