如何在python中使用webdriver selenium选择一个下拉列表元素,它是输入类型的?

2024-10-03 15:25:38 发布

您现在位置:Python中文网/ 问答频道 /正文

HTML脚本是:

    <input id="ctl00_TableContentPlaceHolder_ddlAssignedTo_input" 
    type="text" class="selectbox" autocomplete="off" readonly="" 
    tabindex="0" style="width: 325px;">

    <ul id="the_list">
    <li id="ctl00_TableContentPlaceHolder_ddlAssignedTo_input_-1" 
    class="">Please Select</li>
    <li id="ctl00_TableContentPlaceHolder_ddlAssignedTo_input_18">john</li>
    <li id="ctl00_TableContentPlaceHolder_ddlAssignedTo_input_20">erine</li>
    <li id="ctl00_TableContentPlaceHolder_ddlAssignedTo_input_22">devin</li>

在这里,用户将给出像john、erine或devin这样的名称,我必须从列表中选择该项。在

以下是我到目前为止的进展:

^{pr2}$

Tags: text脚本idinputhtmltypelijohn
2条回答

你的问题还不清楚,是否强制使用send_keys()来显示/展开<input>元素的<li>标记。假设它是False Positive,要选择一个下拉列表元素,可以编写如下函数:

def select_option(option):
    driver.find_element_by_xpath("//ul[@id='the_list']/li[contains(.,'" + option + "')]").click()

您需要先单击下拉列表,然后单击列表项。在

import selenium
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
driver.implicitly_wait(10)

elem = driver.find_element_by_xpath('//*[@id="the_list"]')
elem.click()

elem = driver.find_element_by_xpath('//*[text()=' + name + ']')
elem.click()

相关问题 更多 >