Selenium3 Python WebDriver API análisis de código fuente (17) cuadro desplegable (seleccionar) compatibilidad

Visión de conjunto

SeleniumSe necesita una gran cantidad de código en el proceso de implementación de la operación automática del cuadro desplegable (seleccionar), por lo que Seleniumse proporciona una API específicamente para el cuadro desplegable (seleccionar), es decir selenium\webdriver\support\select.py, la Selectclase en el módulo .

SelectLos principales elementos de la clase son los siguientes:

  • __init__(self, webelement): Método de construcción para comprobar si el elemento es un cuadro desplegable (seleccionar) y si el cuadro desplegable admite selecciones múltiples.
  • optionsCaracterísticas: Regrese a la lista de opciones del cuadro desplegable.
  • all_selected_optionsCaracterísticas: Regrese a la lista de opciones seleccionadas en el cuadro desplegable.
  • first_selected_optionCaracterísticas: Devuelve la opción actual en el cuadro desplegable.
  • select_by_value( value)Método: seleccione la opción de acuerdo con el atributo de valor de la opción.
  • select_by_index( index)Método: seleccione la opción de acuerdo con el índice de la opción.
  • select_by_visible_text( text)Método: seleccione la opción de acuerdo con el texto de la opción.
  • deselect_all()Método: cancele todas las opciones seleccionadas y solo tendrá efecto para el cuadro desplegable que admite selección múltiple .
  • deselect_by_value(value)Método: cancele la opción seleccionada de acuerdo con el atributo de valor de la opción, y solo tendrá efecto para el cuadro desplegable que admite selección múltiple .
  • deselect_by_index(self, index)Método: cancele la opción seleccionada de acuerdo con el índice de la opción, y solo tendrá efecto para el cuadro desplegable que admite selección múltiple .
  • deselect_by_visible_text(text)Método: cancele la opción seleccionada de acuerdo con el texto de la opción, y solo tendrá efecto para el cuadro desplegable que admite selección múltiple .

Caso de estudio

import selenium.webdriver as webdriver
from selenium.webdriver.support.select import Select

driver = webdriver.Firefox()
driver.get("https://kns.cnki.net/kns/brief/result.aspx?dbprefix=scdb")
# 定位下拉框元素
select_element = driver.find_element_by_id("txt_1_sel")
# 实例化Select对象
select_object = Select(select_element)
# 检测是否支持多选
print(select_object.is_multiple)
# 输出所有选项文本
print([i.text for i in select_object.options])
# 输出所有选项value属性
print([i.get_attribute("value") for i in select_object.options])
# 输出所有已选选项value属性
print([i.get_attribute("value") for i in select_object.all_selected_options])
# 输出当前已选选项value属性
print(select_object.first_selected_option.get_attribute("value"))
# 选择索引为2的选项
select_object.select_by_index(2)
# 输出当前已选选项value属性
print(select_object.first_selected_option.get_attribute("value"))
# 选择value属性为TI的选项
select_object.select_by_value("TI")
# 输出当前已选选项value属性
print(select_object.first_selected_option.get_attribute("value"))
# 选择文本为全文的选项
select_object.select_by_visible_text("全文")
# 输出当前已选选项value属性
print(select_object.first_selected_option.get_attribute("value"))
driver.quit()

El resultado es:

None
['主题', '篇关摘', '关键词', '篇名', '摘要', '全文', '被引文献', '中图分类号', 'DOI']
['SU$%=|', 'TKA$%=|', 'KY', 'TI', 'AB', 'FT', 'RF', 'CLC$=|??', 'ZCDOI$=|?']
['SU$%=|']
SU$%=|
KY
TI
FT

Supongo que te gusta

Origin blog.csdn.net/mighty13/article/details/115109797
Recomendado
Clasificación