findElement(By.name(“name = go”))方法失败,尽管该元素存在于网页中

时间:2013-12-13 05:26:44

标签: selenium-webdriver

我正在使用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捕获此目标。即使页面已完全加载并显示此特定元素,我的方法也会失败,并显示消息“错误:无法在指定时间内找到元素”。

1 个答案:

答案 0 :(得分:1)

你应该只在目标中传递“go”。

在您的情况下,"go"是元素的名称。 Selenium将在页面中搜索属性名称,如By.name("go")

所以只需替换,

findElement(By.name("name=go"))

findElement(By.name("go"))