driver= new InternetExplorerDriver(cap);
driver.get("http://Myurl.com");
WebDriverWait wait= new WebDriverWait(driver,10);
案例1:wait.until(ExpectedConditions.elementToBeClickable(By.id(“Tesr”))); 对于Above Code驱动程序在抛出异常之前等待大约10秒但是如果使用下面的代码将WebElement传递给函数“elementToBeClickable”,它会在大约500 ms后抛出异常
案例2:wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.id(“Tesr”))));
请有人告诉我为什么案例2司机没有等到超时值。
答案 0 :(得分:0)
在显式等待函数中使用driver.findElement
时,driver.findElement
优先执行。这只是意味着,WebDriver尝试找到元素并将找到的元素提供给ExpectedCondiions.elementToBeClickable
方法。因此,在尝试查找元素时,仅考虑隐式等待(全局等待),因为在您的情况下隐式等待是500毫秒并且未找到元素NoSuchElementException
被抛出。
不,如果异常是从隐式等待中抛出的,那么你会得到TimeOutException
。相反,你会得到来自NoSuchElementException
方法的driver.findElement
。