2016-05-10 30 views
0

網絡驅動無法命中提交按鈕,因爲沒有這樣的元素髮現錯誤。以下是運行腳本時在控制檯中顯示的代碼和錯誤。網絡驅動無法點擊提交按鈕,因爲沒有這樣的元素髮現錯誤

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"); 
    } 
} 

錯誤信息是:

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

請你能分享頁面的HTML? –

+0

網站的網址是:http://talentrack.in/register,你可以在這裏檢查 –

回答

0

考慮下面的HMTL提交按鈕:

​​

的原因,你正在使用//*[@id='submit-btn']//*[@type='image']時作爲定位首先是接收一個NoSuchElementException,因爲XPath的第一部分 - //*[@id='submit-btn']正在尋找任何其中id屬性等於submit-btn的元素,而所需元素具有類別屬性等於submit-btn

XPath的第二部分 - //*[@type='image']正在尋找一個類型屬性等於'圖像'的子元素,但所需元素沒有任何子元素。

嘗試在違規線使用下面的代碼,讓我知道,如果它的工作原理:

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


在一個不相關的音符,你在哪裏試圖比較密碼行 - if(pwd ==confirm_pwd) {可能是不正確的,因爲您正在比較兩個字符串是否指向同一個String對象。

您應改用.equals()方法類似的方式:

if (pdw.equals(confirm_pwd)) {

0

嘗試第一後除去一切。然後給它一個。 ();)();}}。點擊();點擊鼠標右鍵,然後點擊鼠標右鍵。

0

您好嘗試以下操作。

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

上面的代碼將提交的形式,其中元件ID爲「confirm_pwd」存在。 我相信這會解決你的問題。

+0

嗨尼汀,我已經使用這個,但它不工作。 thnx –

+0

你可以檢查這個xpath // form [@ id ='form_register']/div [1]/input driver.findElement(By.xpath(「form [@ id ='form_register']/div [ 。1] /輸入「))點擊(); –