WebDriverWait -> ExpectedConditions.elementToBeClickable 实际上并不等待

时间:2021-05-01 15:03:34

标签: java selenium-webdriver webdriverwait

@Test
public void aLogIn() {
    openHomePage();
    Login login = PageFactory.initElements(driver, Login.class);                                                          
    login.typeUser();
    login.typePass();
    login.clickLogInButton();
    try {
        login.clickOnSendAnyway(); 
    } catch (Exception e) {
        System.out.println("Send anyway button not displayed anymore");
    }
}

@Test
public void bGoToClients(){
    WebDriverWait wait = new WebDriverWait(driver, 10);
    wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("a[href$='com/client']")));
    WebElement clientClickableArea = driver.findElement(By.cssSelector("a[href$='com/client']")); 
    clientClickableArea.click();
}

登陆首页后,整个页面都是灰色的,直到加载动画运行(直到加载了特定部分的某些记录)。因此,当我尝试单击 clientClickableArea 时,我收到一个 ElementClickInterceptedException 错误,就好像该元素在点 (21, 425) 处不可单击一样。但是,如果我从前端更改过滤器,那么加载的记录就会减少,并且隐含地,加载动画和灰显的屏幕持续时间较短,然后第二个测试成功通过并且元素被正确单击。我尝试了不同的方法让它等到加载动画和灰色屏幕完成,然后才单击客户端,但这些似乎都不起作用(它从不等待)。

我是自动化测试的新手,我花了一整天的时间试图解决这个问题,非常感谢您的帮助。

0 个答案:

没有答案