当前位置: 首页 > news >正文

selenium中,如何使用选择框

html5 

一个多选下拉框,没有默认选

一个单选下拉狂,默认“张桐桐”

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>选择框</title>
</head>
<body><label for="multiSelect">下拉(多选:</label><select id="multiSelect" multiple><option value="option1">选项1</option><option value="option2">选项2</option><option value="option3">选项3</option></select><br><br><label for="singleSelect">下拉(单选:</label><select id="singleSelect" ><option value="boy" >男</option><option value="girl">女</option><option value="tongtong" selected="selected">张桐桐</option></select>
</body>
</html>

方式1: 传统点

直接定位到选项,进行click ,  或者定位到选项, 用send_keys

from selenium import webdriver
import time# 创建浏览器驱动对象
from selenium.webdriver.common.by import Bydriver = webdriver.Chrome()            # 参数写浏览器驱动文件的路径,若配置到环境变量就不用写了
# 访问网址
driver.get("E:\django\接口准备1\选择框.html")# (多选框)直接定位到选项元素,然后点击
"""
两个点了都会选上
"""
driver.find_element(By.CSS_SELECTOR,'option[value="option1"]').click()
driver.find_element(By.CSS_SELECTOR,'option[value="option3"]').click()# (单选框)
"""
点了一个,之前的会取消掉
"""
time.sleep(2)
driver.find_element(By.CSS_SELECTOR,'option[value="girl"]').click()
time.sleep(2)driver.find_element(By.CSS_SELECTOR,'#singleSelect').send_keys("男")

方式2:实例化一个select 对象来定位

相比上面, 他不是一个点击行为,而是一个选择行为,比如默认选了 ,“张桐桐”, 通过方式2的方法再选男,他还是 "张桐桐"

from selenium import webdriver
import time# 创建浏览器驱动对象
from selenium.webdriver.common.by import Bydriver = webdriver.Chrome()            # 参数写浏览器驱动文件的路径,若配置到环境变量就不用写了
# 访问网址
driver.get("E:\django\接口准备1\选择框.html")from selenium.webdriver.support.select import Select# 实例化一个选择对象
selelct1 = Select(driver.find_element(By.CSS_SELECTOR,'#multiSelect'))selelct1.select_by_index(0)             # 方式1selelct1.select_by_value("option2")     # 方式2
time.sleep(1.5)
selelct1.select_by_visible_text("选项3")  # 方式3# 实例化一个选择对象 (下面的)
select2 = Select(driver.find_element(By.CSS_SELECTOR,'#singleSelect'))select2.select_by_index(0)      # 若換成2, 他就還是和默認保持不变selelct1.select_by_index(0)

相关文章:

  • stack和queue的模拟实现
  • 代码随想录算法训练营第二十二天
  • VCS基本仿真
  • 线性代数|机器学习-P9向量和矩阵范数
  • 目标检测数据集 - 智能零售柜商品检测数据集下载「包含VOC、COCO、YOLO三种格式」
  • MacOS M系列芯片一键配置多个不同版本的JDK
  • SpringBoot+Vue幼儿园管理系统(前后端分离)
  • tomcat-valve通过servlet处理请求
  • HTTPS和TCP
  • C++ 数据共享与保护学习记录【代码】
  • Unity 编辑器扩展 一键替换指定物体下的所有材质球
  • Android14 WMS-窗口绘制之relayoutWindow流程(一)-Client端
  • Java学习-JDBC(一)
  • 【数据结构】图论入门
  • 开发常用软件
  • 深入了解以太坊
  • 【css3】浏览器内核及其兼容性
  • go append函数以及写入
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JAVA SE 6 GC调优笔记
  • JavaScript异步流程控制的前世今生
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Python爬虫--- 1.3 BS4库的解析器
  • Redux系列x:源码分析
  • RxJS: 简单入门
  • Vue 动态创建 component
  • 解决iview多表头动态更改列元素发生的错误
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 排序算法之--选择排序
  • 日剧·日综资源集合(建议收藏)
  • 设计模式 开闭原则
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • (02)vite环境变量配置
  • (14)Hive调优——合并小文件
  • (70min)字节暑假实习二面(已挂)
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (二)fiber的基本认识
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (排序详解之 堆排序)
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .Net Web窗口页属性
  • .Net 垃圾回收机制原理(二)
  • .NET编程——利用C#调用海康机器人工业相机SDK实现回调取图与软触发取图【含免费源码】
  • .net访问oracle数据库性能问题
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • @selector(..)警告提示