Вот изолированный HTML код:Селена не удается изменить выпадающий выбор
<span style="position: relative; width: 100%; display: inline-block;">
<select id="0ac88542d16d6200fb983d094f655c76_select" class="form-control">
<option value="display_value">Number</option>
<option value="sys_class_name">Type</option>
</select>
</span>
Использование Python Селена, нажмите на ниспадающем элементе, чтобы развернуть его:
search_elemets = driver.find_elements_by_xpath("//*[@class='form-control']")
search_elemets[0].click()
Теперь давайте попробуем различные сценарии для изменения его выбор до требуемого значения ..
Вариант 1
Select(search_elemets[0]) \
.select_by_visible_text("Number")
driver.find_elements_by_tag_name('option')[1].click()
Вариант 2
Select(search_elemets[0]) \
.select_by_value("display_value")
driver.find_elements_by_tag_name('option')[1].send_keys(Keys.RETURN)
Вариант 3
for option in search_elemets[0].find_elements_by_tag_name('option'):
if option.text == 'Number':
# Use one of the options below
# Option 3.1
Select(search_elemets[0]) \
.select_by_visible_text("Number")
option.click()
break
# Option 3.2
actions = ActionChains(driver)
actions.move_to_element(option)
actions.click(option)
actions.perform()
break
Все попытки привести к визуальному мыши, которая выполняется с помощью WebDriver, но значение не изменилось после ..
Я думаю search_elemets [0] линия .click() не требуется ... – Grasshopper
правильно ли работа страницы с вменяемость ручного тестирования? Не предполагайте, что проблема заключается в автоматическом тестовом коде. Ваши локаторы довольно хороши, использование идентификаторов или имен намного предпочтительнее для создания надежных локаторов. Google «Стратегия локализации веб-сервера Selenium WebDriver». Этот плагин FF https://addons.mozilla.org/en-GB/firefox/addon/element-locator-for-webdriv/ дает неплохие примеры. –