C# Как нажать на кнопку, и учесть InnerText?

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 344
Благодарностей
298
Баллы
83
Не могу сообразить как заставить прогу клацнуть на кнопку, с учётом содержимого в InnerText?
Вот этот код работает
Код:
Tab1.FindElementByXPath(".//div[@class='controls']/button[@class='flat_button button_small button_wide']", 0).Click();
Клик срабатывает, НО, всего один раз, надо дальше найти уникальный элемент, но уникальность его будет только по InnerText, который до нажатия один, после нажатия другой
 

LaGir

Client
Регистрация
01.10.2015
Сообщения
211
Благодарностей
854
Баллы
93
Если точно известен всё содержимое InnerText:
C#:
Tab1.FindElementByXPath(".//div[@class='controls']/button[text()='нужный ИннерТекст']", 0).Click();
Если известна часть содержимого InnerText:
C#:
Tab1.FindElementByXPath(".//div[@class='controls']/button[contains(text(), 'часть нужного ИннерТекста')]", 0).Click();
 
  • Спасибо
Реакции: Valiksim

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 344
Благодарностей
298
Баллы
83
Работает код, спасибо, но задачу не решает, к следующей кнопке не переходит
Видимо придётся собирать все элементы и клацать по списку. Иначе, не знаю как сделать?
 
Последнее редактирование:

LaGir

Client
Регистрация
01.10.2015
Сообщения
211
Благодарностей
854
Баллы
93
Хорошо бы пример или более подробное объяснение, так пока не совсем ясно что именно требуется.

Если нажатая в первый раз кнопка остаётся на странице, то да, следующий клик этим кодом будет по первой, так как номер совпадения стоит 0.
Либо создавать коллекцию с кнопками и перебрать её с кликом по каждому элементу, либо просто зациклить код выше, заменив номер совпадения на переменную-счётчик:
2017-02-22_19-11-24.png
 
  • Спасибо
Реакции: Valiksim

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 344
Благодарностей
298
Баллы
83
Так работает. Меняю номер и иду к следующему элементу. Спасибо большое, как-то не подумал о таком варианте
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)