我需要自动化插入。我的视图有 3 个不同字段的选项卡。测试通过填写每个选项卡中的字段来运行,返回到第一个并提交表单。当webdriver填写第三个,然后返回做第一个,所以它可以提交数据时,一些字段是空白的。在其中几个领域,我使用了这个:
if(!isElementPresent(driver,By.xpath("//div[@id='tabView:frmGrid:depto']/div[2]/span"))){
waitForElement(By.xpath("//div[@id='tabView:frmGrid:depto']/div[2]/span"));
}
这些方法是:
private boolean isElementPresent(WebDriver driver,By by){
driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
try {
driver.findElement(by);
return true;
}
catch(Exception e)
{
return false;
}
finally
{
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
} }
public WebElement waitForElement(By by) {
WebElement result = null;
long maxTime = 6 * 1000;
long timeSlice = 250;
long elapsedTime = 0;
do {
try{
Thread.sleep(timeSlice);
elapsedTime += timeSlice;
result = driver.findElement(by);
} catch(Exception e) {
}
} while(result == null && elapsedTime < maxTime);
return result;
}
即使在primefaces组件存在的字段中,也有“键入”的文本,当它返回选项卡时......它是空白的......!但不是所有的,奇怪的是。但总是一样的。文本字段和下拉列表。还没有看到类似的问题。有人知道为什么吗?
谢谢!