您可以使用WebDriverWait与条件等要素:
public class MyTestClass{
private static final int MAX_WAIT_TIME_SEC = 60;
private WebDriverWait wait;
[...]
public void setField(String fieldname, String text){
wait = new WebDriverWait(driver, MAX_WAIT_TIME_SEC);
wait.until(new NameExpectedCondition(xpath));
WebElement element = driver.findElement(By.name(fieldname));
if(element != null){
element.sendKeys(text);
}
[...]
}
public void foo()
}
随着NameExpectedCondition:
import org.openqa.selenium.By;
public class NameExpectedCondition implements ExpectedCondition<Boolean> {
private String fieldName;
public NameExpectedCondition(String fieldName)
{
this.fieldName= fieldName;
}
public Boolean apply(WebDriver d) {
d.findElement(By.Name(fieldName));
return Boolean.TRUE;
}
}
还请确保您要搜索的元素正确的框架。
AJ77说什么。 Webdriver非常快速地浏览网页,通常需要使用isXPresent(x)或isVisible(x)来确保页面正确加载。 – 2011-05-24 07:53:02
是的,我认为你是正确的.thx – lok4u 2011-05-25 01:51:33