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
3条答案
按热度按时间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)) {
mjqavswn2#
尝试在第一次之后删除所有内容]。那就试试吧。
如:driver.findelement(by.xpath(“//*[@id='submit-btn']”),click();
ego6inou3#
嗨,试着做下面的事情。
driver.findElement(By.id("confirm_pwd")).submit();
上述代码将提交id为“confirm\u pwd”的元素所在的表单。我相信这会解决你的问题。