selenium 2.0中的isElementPresent

use*_*076 12 java selenium webdriver selenium-webdriver

大家好我正在使用webdriver所以如果我想使用selenium; s rc函数isElementPresent我必须模拟selenium rc所以我这样做:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverBackedSelenium;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class new {
 private static void one_sec() {
  Thread.sleep(4000);
 }
 public static void main(String[] args) {    
  WebDriver driver = new FirefoxDriver();
  driver.get(something1);
  Selenium selenium = new WebDriverBackedSelenium(driver, something1); 
  selenium.click("//html...");
  one_sec();
  System.out.println(selenium.isElementPresent("text"));
  WebDriver driverInstance = ((WebDriverBackedSelenium) selenium).getWrappedDriver();
  ...
  }
Run Code Online (Sandbox Code Playgroud)

我总是因为isElementPresent而得到假,当然元素"text"在网上(使用GWT).

Alb*_*rto 13

我非常喜欢Rostislav Matl 在WebDriver上移动到Selenium 2 替代方案,第1部分:

driver.findElements(By.className("someclass")).size() > 0;
Run Code Online (Sandbox Code Playgroud)

的Javadoc: org.openqa.selenium.WebDriver.findElements(org.openqa.selenium.By by)

  • @RiponAlWasim注意,`size()`是一个`List`方法.我所指的`WebDriver`方法是`findElements`,而不是`findElement`,它返回一个`List <WebElement>`.请参阅签名:[WebDriver.findElements(By by)](http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebDriver.html#findElements%28org.openqa. selenium.By%29)和一个例子:[按类名定位UI元素(WebElements)](http://seleniumhq.org/docs/03_webdriver.html#introducing-the-selenium-webdriver-api-by-example#通过类名) (2认同)

Dej*_*nik 7

您可以使用纯webdriver自己实现它:

private boolean isElementPresent(By by) {
    try {
        driver.findElement(by);
        return true;
    } catch (NoSuchElementException e) {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)