场景
在处理下拉框(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()