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实现rest请求api示例
Apr 22 Python
Python统计日志中每个IP出现次数的方法
Jul 06 Python
Python的Twisted框架中使用Deferred对象来管理回调函数
May 25 Python
Pyqt5 基本界面组件之inputDialog的使用
Jun 25 Python
Django 实现前端图片压缩功能的方法
Aug 07 Python
Python 实现的 Google 批量翻译功能
Aug 26 Python
Django+python服务器部署与环境部署教程详解
Mar 30 Python
django rest framework serializers序列化实例
May 13 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
Jul 02 Python
Django创建一个后台的基本步骤记录
Oct 02 Python
Python实现七个基本算法的实例代码
Oct 08 Python
Python中OpenCV实现查找轮廓的实例
Jun 08 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自定义函数之递归删除文件及目录
2010/08/08 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
PHP实现的QQ空间g_tk加密算法
2015/07/09 PHP
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
jQuery 获取URL参数的插件
2010/03/04 Javascript
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
DD_belatedPNG,IE6下PNG透明解决方案(国外)
2010/12/06 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
2015/08/31 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
微信小程序 template模板详解及实例
2017/02/21 Javascript
用jQuery将JavaScript对象转换为querystring查询字符串的方法
2018/11/12 jQuery
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
ES6的异步终极解决方案分享
2019/07/11 Javascript
javascript History对象原理解析
2020/02/17 Javascript
JS常用排序方法实例代码解析
2020/03/03 Javascript
详解ES6 扩展运算符的使用与注意事项
2020/11/12 Javascript
js实现简易计算器小功能
2020/11/18 Javascript
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
python 正则表达式 概述及常用字符
2009/05/04 Python
Python设计模式中单例模式的实现及在Tornado中的应用
2016/03/02 Python
浅谈机器学习需要的了解的十大算法
2017/12/15 Python
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
解决pycharm运行时interpreter为空的问题
2018/10/29 Python
Python删除n行后的其他行方法
2019/01/28 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
2021/02/18 Python
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
关于Java finally的面试题
2016/04/27 面试题
五一手机促销方案
2014/03/08 职场文书
企业法人代表证明书
2014/09/27 职场文书
餐厅开业活动方案
2019/07/08 职场文书
python操作xlsx格式文件并读取
2021/06/02 Python
HTML+CSS实现导航条下拉菜单的示例代码
2021/08/02 HTML / CSS