используя регулярное выражение в watin

Я использую регулярное выражение в watin.

У меня есть что-то вроде: ie.Button(Find.ByName(new Regex(input))).Click();, но я не хочу нажимать на вторую или третью кнопку, которая соответствует, а не на первую.

Как я могу это сделать?


person Daniel    schedule 04.07.2010    source источник


Ответы (3)


Попробуй это:

ie.Button(Find.ByName(new Regex(input)) && Find.ByIndex(1 /* or 2 */)).Click();
person prostynick    schedule 05.07.2010

Попробуй это:

    ButtonCollection buttonCol = ie.Buttons;
    buttonCol = buttonCol.Filter(Find.ByName(new Regex(input)));
    buttonCol[1].Click();
    buttonCol[2].Click();
person alonp    schedule 05.07.2010

много раз я находил необходимость выбирать более высокое, чем первое возвращенное значение, потому что в конструкции find.by*() слишком мало квалификаторов. вы можете попробовать написать свой собственный для таких случаев, которые имеют больше смысла для вашего конкретного случая.

пример linq-запроса:

var buttons = from e in browser.Buttons
            where e.Name == "Test" &&
            e.Text == "Button1"
            select e;

Что-то вроде этого позволит вам выбрать только то, что вы хотите. Это также дает вам возможность быстро проверить счет с помощью .ToList() @ в конце. или используйте цикл foreach для выполнения необходимых действий.

person Todd    schedule 04.11.2010