2016-05-10 4 views
0

Webdriver kann den Submit-Button nicht drücken, weil kein solches Element gefunden wurde. Im Folgenden werden der Code und der Fehler in der Konsole beim Ausführen des Skripts angezeigt.Webdriver nicht in der Lage, die Schaltfläche "Senden" zu drücken, weil kein solches Element gefunden wurde Fehler

public void passwordmatch() { 
    driver.findElement(By.id("encrypted_pwd")).sendKeys(pwd); 
    driver.findElement(By.id("confirm_pwd")).sendKeys(confirm_pwd); 
    driver.findElement(By.xpath("//*[@id='submit-btn']//*[@type='image']")).click(); 
    if(pwd ==confirm_pwd) { 
     System.out.println("Password Match"); 
    } else { 
     System.out.println("Password doesn't Match"); 
    } 
} 

Fehlermeldung ist:

org.openqa.selenium.NoSuchElementException: Unable to locate element: 
    {"method":"xpath","selector":"//*[@id='submit-btn']//*[@type='image']"} 
Command duration or timeout: 30.04 seconds 
+0

Bitte können Sie den HTML-Code für die Seite wählen? –

+0

Website URL ist: http://talentrack.in/register, können Sie hier überprüfen –

Antwort

0

folgende HMTL für die Absenden-Button Gegeben:

<input src="/images/application/modules/default/submit-btn.jpg" class="submit-btn" type="image">

Der Grund, warum Sie eine NoSuchElementException erhält bei der Verwendung von //*[@id='submit-btn']//*[@type='image'] als Locator erstens, weil der erste Teil der XPath - //*[@id='submit-btn'] ist für jede Suche Element in der Seite, deren ID Attribut gleich submit-btn ist, während das erforderliche Element eine Klasse Attribut gleich submit-btn hat.

Der zweite Teil der XPath - //*[@type='image'] sucht ein untergeordnetes Element mit einem Typ jedoch das gewünschte Element hat keine Kinder ‚Bild‘ gleich zuschreiben.

Versuchen Sie, den folgenden Code in der Codezeile mit und lassen Sie mich wissen, ob es funktioniert:

driver.findElement(By.className("submit-btn")).click();


auf einer nicht verwandten Notiz, die Zeile, in die Passwörter zu vergleichen versuchen - if(pwd ==confirm_pwd) { ist wahrscheinlich falsch, wenn Sie vergleichen, ob die zwei Strings auf dasselbe String-Objekt zeigen.

Sie sollten stattdessen die .equals() Verfahren in ähnlicher Weise wie verwenden:

if (pdw.equals(confirm_pwd)) {

0

Versuchen Sie, alles nach dem ersten Entfernen]. Dann versuchen Sie es.

Wie in: driver.findElement (By.xpath ("// * [@ id = 'submit-btn']")). Click();

0

Hallo, versuchen Sie Folgendes.

driver.findElement(By.id("confirm_pwd")).submit();

obige Code wird die Form in dem Element mit der ID 'confirm_pwd' unterbreiten vorliegt. Ich bin sicher, dass dies Ihr Problem lösen wird.

+0

Hi Nitin, ich habe bereits verwendet, aber es funktioniert nicht. thnx –

+0

können Sie mit diesem xpath // form überprüfen [@ id = 'form_register']/div [1]/input driver.findElement (By.xpath ("// form [@ id = 'form_register']/div [ 1]/Eingabe ")). Click(); –

Verwandte Themen