0

我需要自动化插入。我的视图有 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组件存在的字段中,也有“键入”的文本,当它返回选项卡时......它是空白的......!但不是所有的,奇怪的是。但总是一样的。文本字段和下拉列表。还没有看到类似的问题。有人知道为什么吗?

谢谢!

4

0 回答 0