В Selenium IDE как выбрать опцию по индексу в выпадающем меню? - PullRequest
2 голосов
/ 22 декабря 2009

Проблема заключается в изменении меток, поэтому я не могу перехватить метку. Мне нужно захватить, скажем, опцию [0]

есть идеи?

Я использую Selenium IDE (Firefox), это часть, о которой я спрашиваю:

<tr>
    <td>select</td>
    <td>dateRangeString</td>
    <td>index=1</td>
</tr>

последний TD есть поле VALUE в IDE,

Я уже нацеливаюсь на элемент select, но мне нужно смоделировать пользователя, выбирающего первый вариант. Единственный способ сделать это - использовать LABEL = "string" в части VALUE среды IDE, но строка является динамической, поэтому она не будет работать!

Ответы [ 6 ]

11 голосов
/ 22 декабря 2009

вы можете выбрать его, используя XPath //select/option[index].

Помните, что XPath по умолчанию является индексом на основе 1.

Изменить после обновления вопроса

Вы можете использовать несколько различных способов выбора опции из выбора. Ниже была скопирована информация о создании локаторов опций из среды разработки Selenium. Для выбора первого элемента это будет index=0

select (selectLocator, optionLocator) Аргументы:

    * selectLocator - an element locator identifying a drop-down menu
    * optionLocator - an option locator (a label by default)

Select an option from a drop-down using an option locator.

Option locators provide different ways of specifying options of an HTML

Выбрать элемент (например, для выбора конкретный вариант, или для утверждения, что выбранный вариант удовлетворяет Спецификация). Есть несколько формы выбора опций Locator.

    * label=labelPattern: matches options based on their labels, i.e. the visible text. (This is the default.)
          o label=regexp:^[Oo]ther
    * value=valuePattern: matches options based on their values.
          o value=other
    * id=id: matches options based on their ids.
          o id=option1
    * index=index: matches an option based on its index (offset from zero).
          o index=2
If no option locator prefix is provided, the default behaviour is to

совпадение на этикетке.

6 голосов
/ 17 сентября 2010

Вместо использования label = "", попробуйте использовать index = "1" (чтобы выбрать первый элемент). Selenium предлагает метки = "", id = "", value = "" и index = "" для такого рода случаев. Для получения более подробной информации см .:

http://release.seleniumhq.org/selenium-core/0.8.0/reference.html

3 голосов
/ 19 января 2012

Сложно, но команда "type" помогла мне здесь:

<tr>
    <td>type</td>
    <td>id=numStuff</td>
    <td>1</td>
</tr>

Соответствующий html выглядит следующим образом (кроме атрибутов @id и @name)

<select id="numStuff" name="numStuff">
                        <option selected= value="0">0</option>
                        <option value="1">1</option>
                        <option value="2">2</option>
                        <option value="3">3</option>
                        <option value="4">4</option>
                        <option value="5">5</option>
                        <option value="6">6</option>
                        <option value="7">7</option>
                        <option value="8">8</option>
                        <option value="9">9</option>
</select>

Мне интересно, работает ли он для значений параметров длиннее, чем 1 нажатие клавиши. По крайней мере, пока это хорошо.

0 голосов
/ 10 февраля 2017

Например:

select | Locator | index=1 |

Это сработало для меня.

0 голосов
/ 27 октября 2016

В селен IDE я использовал:

Команда: выберите
Цель: цель XPath, заканчивающаяся на select (не вариант). XPath можно получить с помощью FireBug и FirePath.
Значение: Е.Г. «Техас» или любой другой шаблон значения, который вам требуется

0 голосов
/ 31 июля 2015

В C # я решил это с помощью: selenium.Select ("id = yourID", "index =" + i.ToString ());

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...