Python + Selenium(十四)下拉菜单处理

传统的下拉菜单 Select 元素,由一个 Select + 一系列的 option 元素构成。

`<select id="source" name="source">    <option value="">--请选择--</option>    <option value="1001">网络营销</option>    <option value="1002">公开媒体</option>    <option value="1003">合作伙伴</option>   	…   </select>   `

*   1
    
*   2
    
*   3
    
*   4
    
*   5
    
*   6
    
*   7
    


对于下拉菜单,我们操作时是先点击下拉选项,再在展开的选项中点击一项来完成选择。

如果用 Selenium 模拟,就需要先点击 Select 元素,再点击 Option,就稍微麻烦了一些。我们可以通过两种方法来处理。

1. 直接通过 Xpath 点击选项

通过 Xpath 点击直接选项,可以不用点击下拉,一句代码完成操作。

以上面的局部 HTML 代码为例:

`driver.find_element_by_xpath('//*[@id="source"]/option[@value="1002"]').click()   `

*   1
    


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('合作伙伴')   `

*   1
    
*   2
    
*   3
    
*   4
    
*   5
    
*   6
    
*   7
    


Select 类中还提供了通过 option 索引选取、通过 value 值选取:

`select.select_by_index(1)   select.select_by_value('1003')   `

*   1
    
*   2
    


由于我们经常使用 index 和 visible text (可见文本) 的方式选择选项。所以我们简单封装一下:

from selenium.webdriver.common.by import By  
from selenium.webdriver.support.select import Select  
  
def select(driver, locator, option=0):  
	e = Select(driver.find_element(*locator))  
	# 如果选项为整数,则通过 index 选择  
	if isinstance(option, int):  
		e.select_by_index(option)  
	# 如果选项为字符串,则通过 visible_text 选择  
	elif isinstance(option, str):  
		e.select_by_visible_text(option)  
	else:  
		raise ValueError('只能通过index或可见文本进行下拉选项选择!')  
  
# 使用  
select(driver, (By.ID, 'source'), '合作伙伴')

以上就是“Python + Selenium(十四)下拉菜单处理”的全部内容,希望对你有所帮助。
?
?关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。