Проверка наличия кнопки на странице (WebDriver, C#)

Всем привет!
Друзья, подскажите, пожалуйста, как осуществить проверку наличия кнопки на странице?

Использую WebDriver, пишу на C#

А осуществить необходимо достаточно простую вещь:
запускаю страницу, ищу кнопку, если она есть, то кликаю по ней, а если она отсутствует, то кликаю на другую кнопку.

А элемент вообще ищу так:
var nextChapter = driver.FindElement(By.CssSelector(“div.next.ch”));
nextChapter.Click();

Сделал ожидание так

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20));
IWebElement element = wait.Until(x => x.FindElement(By.CssSelector(“div.next.ch”)));
element.Click();

если вам надо было убедиться, что элемент есть на странице, то можно было использовать driver.FindElement(By.CssSelector(“div.next.ch”))>0

Можно искать не элемент, а элементы.
Когда мы ищем конкретный элемент, а его нет, мы получаем ошибку/исключение.
Когда мы ищем элементы, то мы получаем количество найденых элементов.
Ниже пример на Ruby.

element = driver.find_element :css, 'button[class="green"]'
Если элемент найден, то в element попадёт первый найденый элемент.

elements = driver.find_elements :css, 'button[class="green"]
Если элементы (пусть даже один) найдены, то в elements попадёт массив найденых элементов.
Если элементов нет, то длина массива elements будет равна нулю.

Что делать дальше, думаю, понятно.

1 лайк

Спасибо, первые две строки вашего сообщения помогли разобраться с ошибкой в c#