Я использую 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')]")