python+selenium select下拉选择框定位处理方法


Posted in Python onAugust 24, 2019

一、前言

总结一下python+selenium select下拉选择框定位处理的两种方式,以备后续使用时查询;

二、直接定位(XPath)

使用Firebug找到需要定位到的元素,直接右键复制XPath,使用find_element_by_xpath定位;

driver = webdriver.Firefox()
driver.get("https://www.baidu.com/")
driver.find_element_by_xpath().click()

三、间接定位(Select模块)

页面HTML源码如下所示:

<select id="nr" name="NR">
<option value="10" selected="">每页显示10条</option>
<option value="20">每页显示20条</option>
<option value="50">每页显示50条</option>
</select>

python+selenium 代码如下:

# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
import time
 
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.implicitly_wait(20)
 
mouse = driver.find_element_by_link_text("设置")
ActionChains(driver).move_to_element(mouse).perform()
driver.find_element_by_link_text("搜索设置").click()
time.sleep(2)
# 实例化select
s = Select(driver.find_element_by_id("nr"))
# 定位选项
s.select_by_value("20") # 选择value="20"的项:通过value属性
time.sleep(2) #为了明显的看出变化
s.select_by_index(0) # 选择第一项选项:通过选项的顺序选择,第一个为 0
time.sleep(2) #为了明显的看出变化
s.select_by_visible_text("每页显示50条") # 选择text="每页显示50条"的值,即在下拉时我们可以看到的文本

四、总结

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 ——提供第一个被选中的选项,也是下拉框的默认值

通过Select提供的方法和属性,我们可以对标准select下拉框进行任何操作,但是对于非select标签的伪下拉框,需要使用XPath定位;

以上这篇python+selenium select下拉选择框定位处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python批量同步web服务器代码核心程序
Sep 01 Python
Python检测QQ在线状态的方法
May 09 Python
python引用DLL文件的方法
May 11 Python
Python实现简单拆分PDF文件的方法
Jul 30 Python
简述Python中的进程、线程、协程
Mar 18 Python
Python Tkinter实现简易计算器功能
Jan 30 Python
Python中的TCP socket写法示例
May 11 Python
python代码编写计算器小程序
Mar 30 Python
Python拆分大型CSV文件代码实例
Oct 07 Python
python tkinter canvas使用实例
Nov 04 Python
Python中私有属性的定义方式
Mar 05 Python
django使用graphql的实例
Sep 02 Python
Python封装成可带参数的EXE安装包实例
Aug 24 #Python
python识别文字(基于tesseract)代码实例
Aug 24 #Python
python图片二值化提高识别率代码实例
Aug 24 #Python
关于Python形参打包与解包小技巧分享
Aug 24 #Python
python-序列解包(对可迭代元素的快速取值方法)
Aug 24 #Python
对python中的装包与解包实例详解
Aug 24 #Python
Python3进制之间的转换代码实例
Aug 24 #Python
You might like
PHP无限分类的类
2007/01/02 PHP
一周让你学会PHP 不错的学习资料
2009/02/06 PHP
javascript web页面刷新的方法收集
2009/07/02 Javascript
javascript 动态生成私有变量访问器
2009/12/06 Javascript
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
使用jQuery内容过滤选择器选择元素实例讲解
2013/04/18 Javascript
JavaScript去除数组里重复值的方法
2015/07/13 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
js判断空对象的实例(超简单)
2016/07/26 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
js的对象与函数详解
2019/01/21 Javascript
Three.js中矩阵和向量的使用教程
2019/03/19 Javascript
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
layer 关闭指定弹出层的例子
2019/09/25 Javascript
js实现贪吃蛇小游戏
2019/10/29 Javascript
Vue 图片压缩并上传至服务器功能
2020/01/15 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
python批量修改文件后缀示例代码分享
2013/12/24 Python
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
python中zip和unzip数据的方法
2015/05/27 Python
如何处理Python3.4 使用pymssql 乱码问题
2016/01/08 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
python使用多线程查询数据库的实现示例
2020/08/17 Python
Python绘图实现台风路径可视化代码实例
2020/10/23 Python
Python实现随机爬山算法
2021/01/29 Python
浅析与CSS3的loading动画加载相关的transition优化
2015/05/18 HTML / CSS
美国最流行的男士时尚网站:Touch of Modern
2018/02/05 全球购物
意大利比基尼品牌:MISS BIKINI
2019/11/02 全球购物
国际会议邀请函范文
2014/01/16 职场文书
小学少先队辅导员述职报告
2015/01/10 职场文书
学校勤俭节约倡议书
2015/04/29 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
大学生受助感言
2015/08/01 职场文书
法院执行局工作总结
2015/08/11 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle