Я работаю над веб-формой и пытаюсь щелкнуть по указанному li
в пределах ul
на основе имени элемента списка. Так что в приведенном ниже примере мне нужно будет нажать на опцию с текстом = "Ваш работодатель". Мне удалось сделать это с classi c driver.find_element_by_xpath
, но, поскольку производительность является важным фактором для моего проекта, мне нужно было бы выбрать все опции раскрывающегося списка с помощью Javascript. Мне удалось заполнить все поля ввода формы, но я не могу сделать то же самое для выпадающих меню.
div class="ui-selectmenu-menu ui-front ui-selectmenu-open" id="RegisteredOwner-menu-wrap" style="top: 1898px; left: 130px;" xpath="1">
<ul aria-hidden="false" aria-labelledby="RegisteredOwner-button" id="RegisteredOwner-menu" class="ui-menu ui-widget ui-widget-content ui-corner-bottom" role="listbox" tabindex="0" aria-activedescendant="ui-id-109" aria-disabled="false" style="width: 281px;">
<li class="ui-menu-item" id="ui-id-108" tabindex="-1" role="option">
Please select
</li>
<li class="ui-menu-item ui-state-focus" id="ui-id-109" tabindex="-1" role="option">The Insured</li>
<li class="ui-menu-item" id="ui-id-114" tabindex="-1" role="option">Finance/Lease Company</li>
<li class="ui-menu-item" id="ui-id-115" tabindex="-1" role="option">Your Employer</li>
<li class="ui-menu-item" id="ui-id-116" tabindex="-1" role="option">None of the Above</li>
</ul>
</div>
Я пробовал много вариантов, но безуспешно. Мне удалось открыть раскрывающийся список, но я не могу выбрать конкретную опцию c. Я знаю, что это можно сделать, используя идентификатор опции, но мне нужно было бы сделать это с именем опции / текстом в качестве входных данных.
Я считаю, что нечто подобное должно работать:
def populate_dropdown(driver, xls):
elem = driver.find_element_by_xpath("//li[@class='ui-menu-item'][contains(text(),'" + str(xls) + "')]")
driver.execute_script("arguments[0].click();", elem)
Любая помощь будет высоко ценится.