首页 > 解决方案 > 为什么我不能通过 selenium 选择菜单?

问题描述

<div class="fancy-select" data-file=""><label>Choose a file</label>
<select>
  <option value="admin_20210519182831.log">SaveFiles\Logs\admin_20210519182831.log</option>
  <option value="admin_20210519183038.log">SaveFiles\Logs\admin_20210519183038.log</option>
  <option value="chat_20210519182831.log">SaveFiles\Logs\chat_20210519182831.log</option>
  <option value="chat_20210519183038.log">SaveFiles\Logs\chat_20210519183038.log</option>
</select>

我的代码

get_div = Select(driver.find_element_by_class_name('fancy-select'))
get_div.select_by_value("chat_20210519183038.log")

错误

Traceback (most recent call last):
  File "C:\Users\Up\Desktop\New folder\test02.py", line 36, in <module>
    get_div = Select(driver.find_element_by_class_name('fancy-select'))
  File "C:\Users\Up\AppData\Roaming\Python\Python39\site-packages\selenium\webdriver\support\select.py", line 37, in __init__
    raise UnexpectedTagNameException(
selenium.common.exceptions.UnexpectedTagNameException: Message: Select only works on <select> elements, not on <div>

第 36 行

get_div = Select(driver.find_element_by_class_name('fancy-select'))

我已经被这个错误困扰了很长时间,试图弄清楚并尝试修复它,但它没有通过。请帮助知道帮助的人。

标签: pythonpython-3.xseleniumselenium-webdriver

解决方案


What you can try is to give the select tag an id fancy-sel:

select = Select(driver.find_element_by_id('fancy-sel'))

# select by visible text
select.select_by_visible_text('SaveFiles\Logs\chat_20210519183038.log')

# select by value 
select.select_by_value('chat_20210519183038.log')

推荐阅读