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 :(得分: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 的任何元素em>属性等于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)) {