Warum mein test wirft Ausnahme-Nicht zu finden-element in webdriver?
package testproject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.*;
public class mytestclass {
public static void main(String[] args) {
WebDriver Driver = new FirefoxDriver();
Driver.get("https://www.gmail.com/");
WebElement wb= Driver.findElement(By.name("Email"));
wb.sendKeys("sweta");
WebElement wb1= Driver.findElement(By.name("Passwd"));
wb1.sendKeys("123456");
WebElement wb2= Driver.findElement(By.id("signIn"));
wb2.click();
WebElement wb3= Driver.findElement(By.xpath(".//*[@id='gb']/div[1]/div[1]/div[2]/div[5]/div[1]/a"));
wb3.click();
WebElement wb4= Driver.findElement(By.id("gb_71"));
wb4.click();
}
}
Wenn ich dieser code ausgeführt alles läuft gut bis zu dem Punkt, wo ich will, die Taste "anmelden" geklickt werden. Ich bin immer die Ausnahme, die sagt, dass
Exception in thread "main" org.openqa.Selen.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":".//*[@id='gb']/div[1]/div[1]/div[2]/div[5]/div[1]/a"}, aber wenn ich versuche zu finden Sie mit fierbug seine Arbeitsmethoden in Ordnung.
In den oben genannten code habe ich geändert, die E-Mail-id und Passwort zu halten, die E-Mail sicher.
Ich Stand vor dem problem ein Programm, welches ich schon gepostet, auf stakwave so, wenn u können die dann bitte haben Sie einen Blick auf diese link-webdriver ist nicht in der Lage, klicken auf einen hyperlink in firefox
Sorry wusste ich nicht-was ist "Basic mode"?
support.google.com/mail/answer/15049?hl=en ...aber wie ich sagen, dass ich sehr, sehr, sehr, Zweifel werden Sie auch brauchen, um die Mühe der Anmeldung in Gmail, aber Sie haben nicht erklärt, Ihre use cases oder Zusammenhang sehr gut. Kann ich auch empfehlen, nicht schaffen, vielen StackOverflow-Fragen. Sie werden am Ende verwirrend uns und selbst. Ein problem gleichzeitig.
InformationsquelleAutor Shantanu Nandan | 2014-01-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie sicher, Ihre Seite ist komplett geladen, nachdem Sie sich anmelden?
Haben, Sie legen einen timeout für Ihre webdriver? (wie lange er warten für die Elemente). Wahrscheinlich liest er Ihre html-bevor es komplett geladen ist.
Finden Sie schnell heraus, ob dies das problem tun
Thread.sleep(8000)
nachdem Siewb2.click();
sicher, es ist lang genug? In meiner Erfahrung kann es einige Zeit dauern, für langsamere Anwendungen. Wenn die website online ist, kannst du vielleicht einen link
Ich bin nicht in der Lage zu signIn. Ich weiß nicht, warum
Sorry Charlie, ich Tat es nicht, auf welchen link du willst mich teilen? Als ich versuchte driver.verwalten().timeouts().implicitlyWait(50, TimeUnit.SEKUNDEN); ich habe eine neue Ausnahme, die sagt, dass die Exception in thread "main" org.openqa.Selen.remote.UnreachableBrowserException: Fehler bei der Kommunikation mit der remote-browser. Es sind gestorben.
von der website, die Sie testen. wenn er online ist
InformationsquelleAutor Charlie
Entfernen Sie den Punkt am Anfang des xpath-Ausdrucks. So haben Sie einen xpath-Ausdruck thaty könnte passen alles. Mit dem Punkt am Anfang mag man retrict sich je nachdem, ob der aktuelle Knoten der Wurzelknoten ist oder nicht. Ther eis keine Möglichkeit, es zu wissen. Allein die Tatsache, dass der Punkt kann nur ärger geben. Leider kann man nicht immer Vertrauen, was tools wie firebug geben Sie (es ist immer noch wahr in 99% der Fall).
Natürlich dafür sorgen, dass die elemetns Sie targeting sind bereits auf dem Bildschirm, wie vorgeschlagen, durch die Vorherige Antwort.
InformationsquelleAutor Algiz
Ich vor ähnlichen problem,
Problem gelöst nach timeout.
Nicht sicher, was die Rolle der timeout hier aber.
InformationsquelleAutor ramkr
entfernen Sie den Punkt(.) und der Stern(*) aus dem xpath-und richtige-tag Namen der Sterne.
beispielsweise, wenn @id=gb-ist die id des div-Elements, platzieren div statt der Sterne.
Hoffe, es wird funktionieren.
InformationsquelleAutor Manvendra Kumar Mishra
InformationsquelleAutor user8119294