selenium之下拉框选择Select
- Select API 知识点
-
select_by_index() 根据索引选择,0是第一个元素
select_by_value() 根据value属性的值选择
select_by_visible_text() 根据可见文本选择;不要写前后的空格 -
deselect_by_index(index) 取消选择,0是第一个元素
deselect_by_value(value) 根据value属性的值取消选择
deselect_by_visible_text(text) 根据可见文本取消选择;不要写前后的空格
deselect_all() 全部取消选择
-
- 案例
- select.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="div1"> <!-- select 下拉框 --> <select name="sex" id="gender"> <option value=" male"> male</option> <option value="female">female</option> <option value="tailand">tailand</option> </select> <!-- select标签多选,通过multiple属性 --> <select name= “education” id=”education” multiple=”multiple”> <option value=”1”>高中</option> <option value=”2”>大学</option> <option value=”3”>博士</option> <option value=”4”>硕士</option> </select> </div> </body> </html>
- ele_select.py
# -*- coding: UTF-8 -*- import os from time import sleep from selenium.webdriver.support.select import Select from selenium import webdriver driver = webdriver.Chrome('../chromedriver.exe') driver.get(os.path.abspath('select.html')) test_flag = 3 if test_flag == 1: driver.find_element('css selector', '#gender>option:nth-child(2)').click() # 不用API,可以直接点 if test_flag == 2: ele_select = driver.find_element('css selector', '#gender') Select(ele_select).select_by_index(1) # female sleep(2) Select(ele_select).select_by_value('tailand') # tailand sleep(2) # xpath = ".//option[normalize-space(.) = %s]" % self._escape_string(text) 源码中normalize-space去除首尾空格 Select(ele_select).select_by_visible_text('male') if test_flag == 3: ele_select = driver.find_element('css selector', '#”education”') Select(ele_select).select_by_index(0) sleep(2) Select(ele_select).select_by_index(1) sleep(2) Select(ele_select).deselect_by_index(0) Select(ele_select).deselect_all() sleep(2) # Select(ele_select).deselect_by_value('') # sleep(2) # Select(ele_select).deselect_by_visible_text('')
注意:根据可见文本选择时,若元素中含有空格不需要写,因为在源码中normalize-space已去除首尾空格
- select.html
本文来自博客园,作者:手可摘星辰/*,转载请注明原文链接:https://www.cnblogs.com/u-damowang1/p/17683062.html