selenium为我们提供了一个Select类以供我们使用,如下:
要使用此模块,需要用如下语句导入:
from selenium.webdriver.support.select import Select
使用示例如下:
如下为一个Select部分的html代码<select id="id_language" name="language">
<option value="cs">česky (cs)</option>
<option value="de">Deutsch (de)</option>
<option value="en">English (en)</option>
<option value="en-au">English (en-au)</option>
<option value="en-gb">British English (en-gb)</option>
<option value="pl">polski (pl)</option>
<option value="pt-br">Português Brasileiro (pt-br)</option>
<option value="sr">српски (sr)</option>
<option selected="selected" value="zh-cn">简体中文 (zh-cn)</option>
<option value="zh-tw">繁體中文 (zh-tw)</option>
</select>
</div>
</div>
那么如果我们要定位第三个option,那么我们可以使用如下方法:
Select(driver.find_element_by_id("id_language")).select_by_value('en')
#下面是第二种方式(同上)
selector = Select(driver.find_element_by_id("id_language")) # 先定位下拉框的位置
selector.select_by_value('en') # 在下拉框中选择
用Select来定位到select标签,而后再通过value来定位到第三个option,
还有一种就是
代码:
先导入select
from selenium.webdriver.support.select import Select
Select提供了三种选择方法:
select_by_index(index) ——通过选项的顺序,第一个为 0
select_by_value(value) ——通过value属性
select_by_visible_text(text) ——通过选项可见文本
同时,Select提供了四种方法取消选择:
deselect_by_index(index)
deselect_by_value(value)
deselect_by_visible_text(text)
deselect_all()
此外,Select提供了三个属性方法给我们必要的信息:
options ——提供所有的选项的列表,其中都是选项的WebElement元素
all_selected_options ——提供所有被选中的选项的列表,其中也均为选项的WebElement元素
first_selected_option ——提供第一个被选中的选项,也是下拉框的默认值
如下:
options(self): #此函数返回一个属于此select标签的option列表,不常用;
all_selected_options(self): #此函数返回一个全部选择了的option的列表,不常用;
first_selected_option(self): #此函数返回第一个或者当前被选中的option元素,不常用;
select_by_value(self, value): #以传入的value属性值来进行匹配,并选择;
select_by_index(self, index): #以传入的index属性值来查找匹配的元素并选择;
select_by_visible_text(self, text) #选择所有有文本显示的option元素,如<option value="foo">Bar</option>;
deselect_all(self): #将所有选择清除;
deselect_by_value(self, value): #以传入的value属性值来查找该option并取消选择;
deselect_by_index(self, index): #以传入的index属性值来查找匹配的元素并取消选择;
deselect_by_visible_text(self, text): #以传入的text文本值来查找匹配的元素并取消选择