获取Python Selenium中Select元素的选项时出错

2024-06-28 14:37:25 发布

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

我试图在这个Select元素中列出可能的选项。在

<select id="sl_coursePage" onchange="document.frm.submit();" name="sl_coursePage">
    <option selected="selected" value="0"></option>
    <option value="1"></option>
    <option value="2"></option>
    <option value="3"></option>
    <option value="4"></option>
    <option value="5"></option>
    <option value="6"></option>
    <option value="7"></option>
    <option value="8"></option>
    <option value="9"></option>
    <option value="10"></option>
</select>

我可以用elem = driver.get_element_by_name('sl_coursePage')找到元素本身,但是当我试图用elem.get_elements_by_xpath('.//*')或{}列出选项时,它给了我空列表。在

所以我试着从selenium.webdriver.support.ui使用Select并通过以下代码获得列表:

^{pr2}$

但是,当我尝试此操作时,会出现以下错误:

selenium.common.exceptions.UnexpectedTagNameException: Message: Select only works on <select> elements, not on <input>

我不明白为什么这不是一个Select元素,而它的标记是“Select”。如果有人能让这些方法中的任何一种发挥作用或提出一种有效的替代方法,我将不胜感激。提前谢谢。在


Tags: name元素列表getbyvalue选项elements
2条回答

您正在尝试按名称获取元素

elem = driver.get_element_by_name('sl_coursePage')

试着从id或css选择器中获取它,比如

^{pr2}$

看起来有一个名为的另一个元素,它不是select,并由“按名称”定位器匹配。改进查找元素的方式,明确要求使用所需名称的select元素:

elem = driver.find_element_by_css_selector('select[name=sl_coursePage]')

或者,检查id

^{pr2}$

相关问题 更多 >