webdriver无法点击submit按钮,因为找不到此类元素错误

8yoxcaq7  于 2021-07-03  发布在  Java
关注(0)|答案(3)|浏览(374)

webdriver无法点击submit按钮,因为找不到这样的元素错误。下面是运行脚本时控制台中显示的代码和错误。

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
bhmjp9jg

bhmjp9jg1#

为提交按钮提供以下hmtl: <input src="/images/application/modules/default/submit-btn.jpg" class="submit-btn" type="image"> 使用时收到nosuchelementexception的原因 //*[@id='submit-btn']//*[@type='image'] 作为定位器首先是因为xpath的第一部分- //*[@id='submit-btn'] 正在页中查找id属性等于的任何元素 submit-btn ,而必需元素的class属性等于 submit-btn .
xpath的第二部分- //*[@type='image'] 正在查找类型属性等于“image”的子元素,但所需元素没有任何子元素。
尝试在有问题的行中使用以下代码,并告诉我它是否有效: driver.findElement(By.className("submit-btn")).click(); 在一个不相关的注解中,你试图比较密码的那行- if(pwd ==confirm_pwd) { 在比较两个字符串是否指向同一个字符串对象时,可能不正确。
你应该改用 .equals() 方法类似于: if (pdw.equals(confirm_pwd)) {

mjqavswn

mjqavswn2#

尝试在第一次之后删除所有内容]。那就试试吧。
如:driver.findelement(by.xpath(“//*[@id='submit-btn']”),click();

ego6inou

ego6inou3#

嗨,试着做下面的事情。 driver.findElement(By.id("confirm_pwd")).submit(); 上述代码将提交id为“confirm\u pwd”的元素所在的表单。我相信这会解决你的问题。

相关问题