我有一种方法,等待在屏幕上看不到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")));