场景
在处理下拉框(select)的时候selenium给我们提供了一系列的便捷方法,我们只需要使用selenium.webdriver.support.select.Select
类来稍微封装一下就好了。
下面是我们经常会用到的一些方法
- options: 返回下拉框里所有的选项
- all_selected_options: 返回所有选中的选项
- select_by_value(value): 通过option的value值来选择
- select_by_index(index) 通过option的顺序来选择
- select_by_visible_text(text): 通过option的text来选择
代码
s7.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form enctype="multipart/form-data"> <div> <textarea name="meno" >123456</textarea> <select name="city" > <option value="beijing">北京</option> <option value="shanghai">上海</option> <option value="nanjing" selected="selected">南京</option> <option value="chengdu">成都</option> </select> <input type="submit" value="提交" /> <input type="reset" value="重置" /> </div> </form> </body> </html>
select--tag.py
#!/usr/bin/env python # -*- codinfg:utf-8 -*- ''' @author: Jeff LEE @file: select--tag.pay @time: 2018-05-10 10:44 ''' from selenium import webdriver from selenium.webdriver.support.select import Select from time import sleep import os if 'HTTP_PROXY'in os.environ: del os.environ['HTTP_PROXY'] dr = webdriver.Firefox() file_path ='file://'+ os.path.abspath('s7.html') print (file_path) dr.get(file_path) city_selector = Select(dr.find_element_by_tag_name('select')) # 返回所有的options print(city_selector.options) sleep(1) # 返回所有选中的options print(city_selector.all_selected_options) sleep(1) # 通过option的value值来选择上海 city_selector.select_by_value('shanghai') sleep(2) # 通过index来选择,比如选择第4项 city_selector.select_by_index(3) sleep(1) # 通过option的text来选择 city_selector.select_by_visible_text('北京') dr.quit()