Selenium.IsElementPresent с использованием текста параметра выбора (C #) - PullRequest
1 голос
/ 05 августа 2009

Я использую Selenium в C # с Selenium RC для автоматического тестирования взаимодействия, но наткнулся на камень преткновения.

С учетом этого HTML:

<select id="my-select-list">
    <option value="1">First option</option>
    <option value="2">Second option</option>
    <option value="3">Third option</option>
    <option value="4">Fourth option</option>
</select>

Я хочу протестировать, чтобы убедиться, что на странице присутствует опция «Третий вариант».

Все следующие тесты не пройдены, то есть возвращают false:

Selenium.IsElementPresent("//select/option[@label='Third option']")
Selenium.IsElementPresent("//select[option='Third option']")
Selenium.IsElementPresent("//select[contains(option, 'Third option')]")
Selenium.IsElementPresent("//option[contains(., 'Third option')]")
Selenium.IsElementPresent("//option[contains(text(), 'Third option')]")

Это ограничение Selenium (RC / .NET) или есть другой способ его выбора?

Ps. Я знаю, что могу проверить, используя значение параметра, но это может измениться, и текст определенно не будет.

РЕДАКТИРОВАТЬ: ошибка PEBKAC

Извините, мой плохой. Кажется, селен загружал сайт, отличный от того, что, как я думал, он загружал.

Следующие XPath-запросы все работают:

Selenium.IsElementPresent("//option[text()='Third option']")
Selenium.IsElementPresent("//select[option='Third option']")
Selenium.IsElementPresent("//option[contains(., 'Third option')]")
Selenium.IsElementPresent("//option[contains(text(), 'Third option')]")

Ответы [ 2 ]

2 голосов
/ 05 августа 2009

Мой XPath немного ржавый, но вы пробовали ...

Selenium.IsElementPresent("//option[text()='Third option']");
0 голосов
/ 04 апреля 2014

Шаг 1. Получение всех параметров в раскрывающемся списке

Select select = new Select (driver.findElement (By.id ("my-select-list"))); String [] options = select.getOptions ();

Шаг 2. Проверка погоды: в раскрывающемся списке указан конкретный параметр («Третий вариант»).

для (строковая опция: опции)

{

if (! Option.equals («Третий вариант»))

СБОЙ;

еще

PASS;

}

...