由于没有找到这样的元素错误,Webdriver无法点击提交按钮

时间:2016-05-10 10:42:26

标签: java selenium selenium-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

3 个答案:

答案 0 :(得分:0)

尝试删除第一个后的所有内容]。然后试一试。

如: driver.findElement(By.xpath(" // * [@ id中='提交-BTN']&#34))。单击();

答案 1 :(得分:0)

您尝试执行以下操作。

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

上面的代码将提交带有id' confirm_pwd'的元素的表单。存在。 我相信这会解决你的问题。

答案 2 :(得分:0)

给出提交按钮的以下HMTL:

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

使用//*[@id='submit-btn']//*[@type='image']作为定位器时收到NoSuchElementException的原因首先是因为XPath的第一部分 - //*[@id='submit-btn']正在寻找页面中 id 属性等于submit-btn,而必需元素的 class 属性等于submit-btn

XPath的第二部分 - //*[@type='image']正在寻找一个 type 属性等于&#39; image&#39;的子元素。但是必需的元素没有任何孩子。

尝试在违规行中使用以下代码,并告诉我它是否有效:

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

在一个不相关的注释中,您正在尝试比较密码的行 - if(pwd ==confirm_pwd) {可能不正确,因为您正在比较两个字符串是否指向同一个String对象。

您应该以类似于:

的方式使用.equals()方法

if (pdw.equals(confirm_pwd)) {