我正在使用Selenium WebDriver方法在Java中编写一个方法,以测试网页中是否存在元素。
以下是我的代码:
public boolean waitForElementPresent(String target) {
if(target!=null) {
driver.manage().timeouts()
.implicitlyWait(15, TimeUnit.SECONDS);
try {
if (driver.findElement(By.name(target))!=null) { log.info("Entered name Condition"); return true; }
} catch(Exception e) { log.debug(e); return false; }
} else {
log.info("The target is null");
return false;
}
}
此处发送的目标是"name=go"
,使用selenium IDE捕获此目标。即使页面已完全加载并显示此特定元素,我的方法也会失败,并显示消息“错误:无法在指定时间内找到元素”。
答案 0 :(得分:1)
你应该只在目标中传递“go”。
在您的情况下,"go"
是元素的名称。 Selenium将在页面中搜索属性名称,如By.name("go")
所以只需替换,
findElement(By.name("name=go"))
与
findElement(By.name("go"))