2016-05-10 8 views
0

Webdriverは送信ボタンを押すことができません。以下は、スクリプトの実行中にコンソールに表示されるコードとエラーです。Webdriverはこのような要素が見つからないために送信ボタンを押すことができません

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

ウェブサイトのURLは:http://talentrack.in/registerここを確認することができます –

答えて

0

は、送信ボタンについて次のHMTLを考えます要素がidの属性がsubmit-btnに等しい一方、必要な要素がクラス属性(submit-btnに等しい)を持つページでは、

XPath - //*[@type='image']の2番目の部分は、タイプの属性が 'image'の子要素を探していますが、必須要素には子がありません。

問題のある行に次のコードを使用して試してみて、それが動作するかどうか私に教えて:無関係なノートで、あなたがパスワードを比較しようとしている行で

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


からif(pwd ==confirm_pwd) {を2つの文字列が同じStringオブジェクトを指しているかどうかを比較しているので、間違っている可能性があります。

代わりと同様に.equals()メソッドを使用する必要があります。

if (pdw.equals(confirm_pwd)) {

0

]は最初の後、すべてを削除してください。その後、それを行ってください。

次のようになります。 driver.findElement(By.xpath( "// * [@ id = 'submit-btn']"))。

0

こんにちは次のようにしてください。コード上

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

「confirm_pwd」が存在しているIDを持つどの要素でフォームを提出します。 これはあなたの問題を解決すると確信しています。 //*[@id='submit-btn']任意の探している - のXPathの最初の部分があるため、ロケータとして//*[@id='submit-btn']//*[@type='image']を使用しているときにはNoSuchElementExceptionを受けている理由は、まずあり

​​

+0

こんにちはニチン、私はすでにこれを使用していますが、動作していません。 thnx –

+0

このxpath //フォームで確認できますか?[@ id = 'form_register']/div [1]/input driver.findElement(By.xpath( "// form [@ id = 'form_register']/div [ 1]/input "))をクリックします。 –

関連する問題