Selenium - 元素操作

  • 下拉框才做可以分为两类:

    • select标签的下拉框:使用Select类进行操作;

    • 非select标签的下拉框:一般是 ulli, div 等标签组成,使用元素定位的方法,首先点击下拉框,然后点击选项。

select标签

  • 是针对select标签的操作:

    • from selenium.webdriver.support.select import Select:导入对应的模块

    • select.select_by_index(index):通过索引选择,索引从0开始

    • select.select_by_value(value):通过option标签的value属性选择

    • select.select_by_visible_text(text):通过option标签的文本选择

标签元素示例

<SELECT id="status" style="width:150" name="state" selectedIndex="$!{state}">
<OPTION value="aa">全部</OPTION>
<OPTION value="bb">通过</OPTION>
<OPTION value="cc">末通过</OPTION>
<OPTION value="dd">待处理</OPTION>
</SELECT>

代码实例

from selenium import webdriver
from time import sleep
# 导入对应模块
from selenium.webdriver.support.select import Select driver = webdriver.Chrome()
driver.get('http://www.baidu.com') # 点开下拉框
driver.find_element_by_link_text('下拉框示例').click() # 获取下拉框选项
item = Select(driver.find_element_by_id('status'))
  • 下拉框选择
# 通过索引index选择
item.select_by_index(3) # 通过value值选择
item.select_by_value('cc') # 通过选项文本选择
item.select_by_visible_text('待处理')
  • 下拉框取消选择
# 取消所有选择
item.deselect_all() # 通过索引index取消选择
item.deselect_by_index(3) # 通过value值取消选择
item.deselect_by_value('cc') # 通过选项文本取消选择
item.deselect_by_visible_text('待处理')
  • 返回选择信息
# 返回第一个选中选项
item.first_selected_option() # 返回所有已选中选项
item.all_selected_options()

非select标签

  • 思路 1:下拉框如果可以输入,那就可以当成输入框来输入就行了

    • 1、定位下拉框,并点击展开下拉框

    • 2、在下拉框,输入要点击的内容

    • 3、选中需要点击的内容

TODO
  • 思路 2:定位到每一个下拉选项元素,点击操作

    • 1、定位下拉框,并点击展开下拉框

    • 2、定位需要选中的内容

    • 3、点击元素

TODO

Selenium - 元素操作(3) - 下拉框操作的更多相关文章

  1. selenium webdriver学习(八)------------如何操作select下拉框(转)

    selenium webdriver学习(八)------------如何操作select下拉框 博客分类: Selenium-webdriver   下面我们来看一下selenium webdriv ...

  2. selenium - 下拉框操作

    # 9. 下拉框操作# (1)等待下拉列表和下拉列表中值存在# (2)在下拉列表中选择一个值 # 三种方式# A. 获取所有的下拉列表值,然后用循环去匹配相同的值 select_by_index(下标 ...

  3. JQuery操作select下拉框

    JQuery操作select下拉框 获取Select选择的Text和Value $("#select_id").change(function(){//code...}); //为 ...

  4. jquery操作select下拉框的各种方法,获取选中项的值或文本,根据指定的值或文本选中select的option项等

    简介jquery里对select进行各种操作的方法,如联动.取值.根据值或文本来选中指定的select下拉框指定的option选项,读取select选中项的值和文本等. 这一章,站长总结一下jquer ...

  5. jQuery下拉框操作系列$("option:selected",this) &&(锋利的jQuery)

    jQuery下拉框操作系列$("option:selected",this)  &&(锋利的jQuery) <!DOCTYPE html> <ht ...

  6. web自动化测试—selenium游览器下拉框操作

    # coding=utf-8'''下拉框实战思路导包:from selenium.webdriver.support.select import Select #下拉框select from sele ...

  7. Selenium常用操作汇总二——如何操作select下拉框

    下面我们来看一下selenium webdriver是如何来处理select下拉框的,以http://passport.51.com/reg2.5p这个页面为例.这个页面中有4个下拉框,下面演示4种选 ...

  8. selenium中各个模块操作:下拉框、鼠标悬浮连贯、拼图拖拽操作、以及其他拖拽操作、连线操作

    1.下拉框的修改操作 方法一:定位到元素后,通过select选择对应的值 方法二:通过两次点击的方法:没有select的value属性时,采用click两次的方法去选择: click第一次后,出现下拉 ...

  9. jquery操作select下拉框的多种方法(选中,取值,赋值等)

    Query获取Select选择的Text和Value: 语法解释: 1. $("#select_id").change(function(){//code...}); //为Sel ...

  10. jQuery操作select下拉框的text值和value值的方法

    1.jquery获取当前选中select的text值 $("#select1").find("option:selected").text(); 2.jquer ...

随机推荐

  1. 2.27总结——JDBC学习

    今天初步了解了Javaweb的JDBC,了解其基础语句,以及连接数据库的方式,但是自我感觉很抽象,实际上手仍有些困难,需要参考模板,增删改查目前进度在增和查,继续努力,争取本学期尽快跟上同学学习进度!

  2. Jetson Xavier NX 试玩 (一)

    Jetson Xavier NX 试玩 (一) 环境搭建 0 前言 NVIDIA家的Jetson系列是业内嵌入式边缘计算机的代表作,体积小,功能强是其最主要的优点. 学院入手了一款Jeston Xav ...

  3. File 未释放文件权柄问题处理

    Unreleased Resource: Files Abstract 程序可能无法释放某个文件句柄. Explanation 程序可能无法成功释放某一个文件句柄. 资源泄露至少有两种常见的原因: - ...

  4. 小笨自采集在线电脑壁纸 v2.0-支持移动端自适应,支持https

    这周闲着没事,翻着网站,记得去年的发表的一篇文章小笨分享一款高清电脑壁纸API,主要是将孟坤壁纸改造支持https,还加了一个搜索功能.以前的壁纸是这样的: 但是,不支持移动端浏览,于是小笨趁着这周周 ...

  5. Spring框架中都用到了哪些设计模式 ?

    1.简单工厂模式 简单工厂模式的本质就是一个工厂类根据传入的参数,动态的决定实例化哪个类.Spring 中的 BeanFactory 就是简单工厂模式的体现,根据传入一个唯一的标识来获得 bean 对 ...

  6. 解决vue中滚轮事件报错 Added non-passive event listener to a scroll-blocking 'mousewheel' event.告警

    参考:https://www.jianshu.com/p/23850d4cade8 参考:让页面滑动流畅得飞起的新特性:Passive Event Listeners

  7. Moebius数据库多活集群

    背景 数据库是信息化的基石,支撑着整个业务系统,发挥着非常重要的作用,被喻为"IT的心脏".因此,让数据库安全.稳定.高效地运行已经成为IT管理者必须要面对的问题.数据库在底层架构 ...

  8. servlet 没有实例化可以直接调用非静态方法??

    今天练习servlet时,居然发现没有实例化可以直接调用非静态方法.看了好长时间发现:省去了this关键字.记录一下. public class Servlet2 extends GenericSer ...

  9. 数据库mysql8.0安装+Navicat12

    第一次写博客,准备坚持下去把每天学习到的东西记录下来,刚好安装mysql8.0过程中遇到了一些问题并解决,系统win10.致敬博客 首先先粘贴一段mysql的百度百科词条:MySQL是一个关系型数据库 ...

  10. java无效发源版本xx

    这三个地方统一一下 就可以解决了