2013-07-18 6 views
2

Проблема: я хочу изменить выпадающее меню из значения «Назначено» на «Разрешенное» значение.Как изменить значение выпадающего меню с неправильным HTML? (Python/Selenium)

Обычно я просто выбираю элемент и send_keys значение, которое я хочу выбрать, но в этом случае это не сработает. Я нашел обходное решение, которое заключается в выборе другого элемента, который можно выбрать, и send_keys (Keys.TAB, «Разрешено»), чтобы выбрать раскрывающееся меню и изменить его значение. Проблема в том, что он иногда говорит, что элемент, который я выбрал, не отображается и сбой.

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

Адрес html объекта.

<div class="core_status" name="core.status" id="core.status0"> 
    <div class="goog-inline-block goog-flat-menu-button" role="button" style="-moz-user-select: none;" tabindex="3" aria-haspopup="true"> 
     <div class="goog-inline-block goog-flat-menu-button-caption">Assigned</div> 
     <div class="goog-inline-block goog-flat-menu-button-dropdown">&nbsp;</div> 
    </div> 
    </div> 

Выпадающее меню в настоящее время установлен на «Назначено», и я хочу, чтобы мой сценарий, чтобы установить его на «Решимость».

Вот что я использую.

driver.find_element_by_name("core.summary").click() 
driver.find_element_by_name("core.summary").send_keys(Keys.TAB,"R") 
+0

Ваш html не включает в себя «Разрешенный» в любом месте - это правильно? –

ответ

0

Вы пытались использовать класс Select? Это должно быть примерно так:

from selenium.webdriver.support.ui import Select 
Select(driver.find_element_by_name('core.summary')).select_by_index(1) 

К сожалению, это зависит от количества и количества заказов. В худшем случае вам нужно пройти через список Select.get_options, чтобы найти то, что вам нужно, а затем либо выбрать по индексу или видимому тексту.

Смежные вопросы