我需要自动化插入。我的视图有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"));
}
theese方法是:
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组件的字段中,也有文本“typed”,当它返回选项卡时......它是空白的......!但并非所有这些都是奇怪的。但总是一样的。文本字段和下拉列表。还没有看到类似的问题。有人知道为什么?
谢谢!