Я запускаю тест с использованием Selenium WebDriver, и если у пользователя нет прав доступа, div не существует на странице. Я пытаюсь сделать так, чтобы, если элемент отображается, он возвращает true, но если он попадает в таймаут, он возвращает false.WebDriverПомогите подождать, пока элемент не существует или не существует?
public bool SummaryDisplayed()
{
var wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(5));
var myElement = wait.Until(x => x.FindElement(By.Id("summaryPage")));
return myElement.Displayed;
}
Я не хочу использовать Thread.Sleep, потому что если элемент есть через 2 секунды я хочу, чтобы продолжить. Но если элемент не существует через 5 секунд, он должен возвращать значение false. Я не хочу, чтобы он выдавал исключение, в некоторых тестовых случаях я ожидаю, что он не будет существовать. Есть ли способ подавить исключение и вернуть false после таймаута? Thanks
Звучит так, как будто это должны быть два разных свойства/методы. Это прямо против того, что означает 'WebDriverWait', поэтому вы всегда можете вернуться к простому старому циклу while. Можете ли вы дать пример использования, когда он будет присутствовать, а когда этого не будет? – Arran