Я использую регулярное выражение в watin.
У меня есть что-то вроде: ie.Button(Find.ByName(new Regex(input))).Click();
, но я не хочу нажимать на вторую или третью кнопку, которая соответствует, а не на первую.
Как я могу это сделать?
Я использую регулярное выражение в watin.
У меня есть что-то вроде: ie.Button(Find.ByName(new Regex(input))).Click();
, но я не хочу нажимать на вторую или третью кнопку, которая соответствует, а не на первую.
Как я могу это сделать?
Попробуй это:
ie.Button(Find.ByName(new Regex(input)) && Find.ByIndex(1 /* or 2 */)).Click();
Попробуй это:
ButtonCollection buttonCol = ie.Buttons;
buttonCol = buttonCol.Filter(Find.ByName(new Regex(input)));
buttonCol[1].Click();
buttonCol[2].Click();
много раз я находил необходимость выбирать более высокое, чем первое возвращенное значение, потому что в конструкции find.by*() слишком мало квалификаторов. вы можете попробовать написать свой собственный для таких случаев, которые имеют больше смысла для вашего конкретного случая.
пример linq-запроса:
var buttons = from e in browser.Buttons
where e.Name == "Test" &&
e.Text == "Button1"
select e;
Что-то вроде этого позволит вам выбрать только то, что вы хотите. Это также дает вам возможность быстро проверить счет с помощью .ToList() @ в конце. или используйте цикл foreach для выполнения необходимых действий.