Beobachten folgenden Fehler während der Ausführung meines Testskripts. Kann mir jemand helfen, die Ursache des Scheiterns zu erkennen? HierNoSuchElementException beim Ausführen meines Testscript
org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"id","selector":"lid"}
Command duration or timeout: 20.45 seconds
ist der Ausschnitt aus meinem Code. Bitte beachten Sie, dass das Element in demselben Frame vorhanden ist, daher wird Frame-Switch nicht benötigt.
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
//import org.openqa.selenium.support.ui.ExpectedConditions;
//import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.Test;
public class LoginPage
{
@Test
public void testLoginFail()
{
WebDriver driver = new FirefoxDriver();
driver.get("https://www.zoho.com/crm/");
driver.manage().timeouts().implicitlyWait(20,TimeUnit.SECONDS);
driver.findElement(By.linkText("LOGIN")).click();
//WebDriverWait wait = new WebDriverWait(driver,40);
//wait.until(ExpectedConditions.visibilityOfElementLocated((By.id("lid"))));
driver.findElement(By.id("lid")).sendKeys("[email protected]");
HTML-Ansicht des Elements:
<input name="lid" id="lid" class="input usrbx" value="" onkeypress="clearmsg()" type="email">
Haben Sie versucht, 'driver.findElement (By.id (" lid ") zu verpacken. SendKeys (" [email protected] ");' Anweisung in einem 'expliziten wait'? Fügen Sie auch das Login-Formular HTML hinzu, sonst werden die Leute es schwer haben, Ihnen zu helfen. Was ich tun würde, ist die Browser-Konsole zu öffnen und zu sehen, welcher Selektor die Eingabe mit '.val()' füllt. (Beispiel: '$ ('# lid'). val (" [email protected] ")'). Wenn es mit der Konsole JQuery funktioniert, funktioniert es mit Ihren Selektoren. :) – iamdanchiv
Ich habe bereits versucht, diese Anweisung mit expliziten warten, aber es hat nicht funktioniert. – Dks
@Dks hast du meine Lösung versucht? –