您可以使用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