传统的下拉菜单 Select 元素,由一个 Select + 一系列的 option 元素构成。
--请选择--
网络营销
公开媒体
合作伙伴
…
对于下拉菜单,我们操作时是先点击下拉选项,再在展开的选项中点击一项来完成选择。
如果用 Selenium 模拟,就需要先点击 Select 元素,再点击 Option,就稍微麻烦了一些。我们可以通过两种方法来处理。
1. 直接通过 Xpath 点击选项
通过 Xpath 点击直接选项,可以不用点击下拉,一句代码完成操作。
以上面的局部 HTML 代码为例:
driver.find_element_by_xpath('//*[@id="source"]/option[@value="1002"]').click()
2. 使用 Select 类
使用 Xpath 虽然可行,但是稍微缺乏一些灵活性。
在 WebDriver 中专门提供了一个 Select 类来处理下拉菜单。
# 导入 Select 类
from selenium.webdriver.support.select import Select
# 找到下拉菜单元素
e = driver.find_element_by_id('source')
select = Select(e)
# 按文本选择
select.select_by_visible_text('合作伙伴')
Select 类中还提供了通过 option 索引选取、通过 v