我有一种方法,等待在屏幕上看不到css(模态)定位器,在某些构建中,我收到以下失败消息


  预期条件失败:等待元素不再存在
  可见:By.cssSelector:.modal-body(尝试使用500进行6秒
  MILLISECONDS间隔)
      构建信息:版本:“ 3.4.0”,修订版:“未知”,时间:“未知”
      系统信息:主机:'DEV007',ip:'172.16.2.192',操作系统名称:'Windows Server 2008 R2',os.arch:'amd64',os.version:'6.1',java.version:
  '1.8.0_131'
      驱动程序信息:org.openqa.selenium.chrome.ChromeDriver
      功能[{applicationCacheEnabled = false,rotatable = false,mobileEmulationEnabled = false,networkConnectionEnabled = false,
  chrome = {chromedriverVersion = 2.29.461591
  (62ebf098771772160f391d75e589dc567915b233),
  userDataDir = C:\ Users \ GI \ AppData \ Local \ Temp \ 2 \ scoped_dir7780_13017},
  takeHeapSnapshot = true,pageLoadStrategy = normal,
  databaseEnabled = false,handlesAlerts = true,hasTouchScreen = false,
  版本= 58.0.3029.110,平台= XP,browserConnectionEnabled = false,
  nativeEvents = true,acceptSslCerts = true,locationContextEnabled = true,
  webStorageEnabled = true,browserName = chrome,takesScreenshot = true,
  javascriptEnabled = true,cssSelectorsEnabled = true,
  UnexpertAlertBehaviour =}]
      会话ID:eb353964f7b9bd515e527a795a111bc3


我的方法:

public boolean waitUntilModalDisapears() {
    return this.wait.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector(".modal-body")));
}

最佳答案

每次运行代码时,在页面中加载Web元素的方式都会有所不同,因此应增加Web驱动程序的等待时间,并尝试多次运行代码,以确保驱动程序已等待足够的时间来加载元素

试试下面:

 WebDriverWait wait = new WebDriverWait(driver, 40);
 wait.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector(".modal-body")));

10-02 10:21
查看更多