python - Selecting an item from the dropdown menu of a list using Python + Selenium
问题描述
I'm trying to select an element from an unordered list using Selenium in Python. My current code clicks on the drop down menu and opens it up, but I'm having trouble getting it to click on an item in the list.
I'm trying to get it to click on Inactive.
Here's the HTML snippet:
<form method="post" action="/user/admin/user/practice/edit/18" id="qf_admin_practice_edit" class="qf-form"
onsubmit="return validate(this)">
<fieldset id="qf_admin_practice_edit__data" class="qf-fieldset">
<legend>Edit Practice</legend>
<div class="qf-select-wrapper" id="qf_admin_practice_edit__data__status_id__wrapper">
<span class="qf-label-span" id="qf_admin_practice_edit__data__status_id__label_span">
<label id="qf_admin_practice_edit__data__status_id__label" for="qf_admin_practice_edit__data__status_id">Practice Status</label>
</span>
<span class="qf-select-span" id="qf_admin_practice_edit__data__status_id__span">
<span class="qf-select-inner" id="qf_admin_practice_edit__data__status_id__inner">
<div class="selectric-wrapper selectric-qf-select selectric-above selectric-open">
<div class="selectric-hide-select">
<select title="Practice Status" name="admin_practice_edit__data__status_id"
id="qf_admin_practice_edit__data__status_id" class="qf-select" tabindex="-1">
<option value="1" class="qf-option">Active</option>
<option value="2" class="qf-option">Inactive</option>
<option value="3" class="qf-option">Pending</option>
<option value="4" class="qf-option">Billing Suspension</option>
<option value="5" class="qf-option">Activity Suspension</option>
<option value="6" class="qf-option">Declined</option>
<option value="7" selected="selected" class="qf-option">Deleted</option>
<option value="8" class="qf-option">Cancelled</option>
<option value="9" class="qf-option">Reschedule</option>
<option value="10" class="qf-option">Expired</option>
<option value="11" class="qf-option">New</option>
</select>
</div>
<div class="selectric">
<span class="label">Deleted</span>
<b class="button">▾</b>
</div>
<div class="selectric-items" tabindex="-1" style="width: 718px; height: 300px;">
<div class="selectric-scroll">
<ul>
<li data-index="0" class="qf-option">Active</li>
<li data-index="1" class="qf-option">Inactive</li>
<li data-index="2" class="qf-option">Pending</li>
<li data-index="3" class="qf-option">Billing Suspension</li>
<li data-index="4" class="qf-option">Activity Suspension</li>
<li data-index="5" class="qf-option">Declined</li>
<li data-index="6" class="qf-option selected highlighted">Deleted</li>
<li data-index="7" class="qf-option">Cancelled</li>
<li data-index="8" class="qf-option">Reschedule</li>
<li data-index="9" class="qf-option">Expired</li>
<li data-index="10" class="qf-option last">New</li>
</ul>
</div>
</div>
<input class="selectric-input" tabindex="0">
</div>
</span>
</span>
</div>
</fieldset>
<div class="qf-button-wrapper" id="qf_admin_practice_edit__submit__wrapper">
<button type="submit" value="Submit" id="qf_admin_practice_edit__submit" class="qf-button">
<span>Submit</span>
</button>
</div>
<div>
<input value="2449978437" type="hidden" name="qf" class="qf-hidden-input qf-input">
</div>
</form>
I'm selecting/opening up the drop down menu using:
clickDropDown = driver.find_element_by_id('qf_admin_practice_edit__data__status_id__wrapper').click()
解决方案
想通了,但这是一个我不喜欢的丑陋解决方案,但它有效。
openDropDown = driver.find_element_by_id('qf_admin_practice_edit__data__status_id__wrapper').click()
swapToActive = driver.switch_to.active_element
swapToActive.send_keys(Keys.UP)
swapToActive.send_keys(Keys.UP)
swapToActive.send_keys(Keys.UP)
swapToActive.send_keys(Keys.UP)
swapToActive.send_keys(Keys.UP)
swapToActive.send_keys(Keys.RETURN)
推荐阅读
- testing - 视频路径问题
- xamarin - 将 BoxView 或 Frame 的高度绑定到 Xamarin 中的(隐藏的)NavigationBar
- python - 使用 Flask-Injector 和 Flask-restplus 调用 api 资源时出错
- bigcommerce - 如何将带有 pick_list 修饰符的产品添加到购物车
- php - Twitter 广告 API
- javascript - 我如何判断文件名是否包含两个或多个点,例如。45FGG.TESTDOC.MAY12.png ,carimage.30.jpg 那么如何存储此图像及其扩展名
- java - RecycleView onclick 在将高度设置为 match_parent 时不适用于第一项
- php - 在 PHP 中解析配置文件(键值)
- android - 选择下拉菜单在 Android 浏览器 (Chrome) 上无效
- javascript - 如何在另一个 html 页面中访问 JSON 数据?