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使用设计模式中的责任链模式与迭代器模式的示例
Mar 02 Python
Python写的一个定时重跑获取数据库数据
Dec 28 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
Sep 20 Python
Flask框架Flask-Principal基本用法实例分析
Jul 23 Python
Python3实现的旋转矩阵图像算法示例
Apr 03 Python
图解python全局变量与局部变量相关知识
Nov 02 Python
python logging 日志的级别调整方式
Feb 21 Python
Python实现爬取并分析电商评论
Jun 19 Python
Python ConfigParser模块的使用示例
Oct 12 Python
python基于selenium爬取斗鱼弹幕
Feb 20 Python
Python使用psutil库对系统数据进行采集监控的方法
Aug 23 Python
利用 Python 的 Pandas和 NumPy 库来清理数据
Apr 13 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
一个用于MySQL的PHP XML类
2006/10/09 PHP
PHP 输出简单动态WAP页面
2009/06/09 PHP
php读取mysql的简单实例
2014/01/15 PHP
php删除左端与右端空格的方法
2014/11/29 PHP
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
解决JS中乘法的浮点错误的方法
2014/01/03 Javascript
jQuery中:checked选择器用法实例
2015/01/04 Javascript
jQuery 中DOM 操作详解
2015/01/13 Javascript
JavaScript实现的浮动层框架用法实例分析
2015/10/10 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
JS正则替换去空格的方法
2017/03/24 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
2018/03/07 Javascript
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
2018/11/28 Javascript
layui table单元格事件修改值的方法
2019/09/24 Javascript
javascript实现画板功能
2020/04/12 Javascript
jQuery+ajax实现文件上传功能
2020/12/22 jQuery
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
[57:55]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第二场 12.12
2020/12/16 DOTA
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
Python编程pygame模块实现移动的小车示例代码
2018/01/03 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
基于python实现简单日历
2018/07/28 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
Python学习笔记之迭代器和生成器用法实例详解
2019/08/08 Python
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
美国尼曼百货官网:Neiman Marcus
2019/09/05 全球购物
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
物业管理毕业生的自我评价
2014/02/17 职场文书
决心书范文
2014/03/11 职场文书
车辆挂靠协议书
2016/03/23 职场文书
2019脱贫攻坚工作总结报告范本!
2019/08/06 职场文书