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批量修改文件后缀示例代码分享
Dec 24 Python
Python程序员鲜为人知但你应该知道的17个问题
Jun 04 Python
使用Python的Twisted框架构建非阻塞下载程序的实例教程
May 25 Python
python中urllib.unquote乱码的原因与解决方法
Apr 24 Python
Python中的pack和unpack的使用
Mar 12 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
Sep 17 Python
python3.6下Numpy库下载与安装图文教程
Apr 02 Python
利用rest framework搭建Django API过程解析
Aug 31 Python
python计算导数并绘图的实例
Feb 29 Python
python实现将字符串中的数字提取出来然后求和
Apr 02 Python
python 最简单的实现适配器设计模式的示例
Jun 30 Python
python 实现百度网盘非会员上传超过500个文件的方法
Jan 07 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
类的另类用法--数据的封装
2006/10/09 PHP
通过ICQ网关发送手机短信的PHP源程序
2006/10/09 PHP
PHP模板引擎Smarty内建函数详解
2016/04/11 PHP
php rmdir使用递归函数删除非空目录实例详解
2016/10/20 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
JQuery遍历元素的后代和同胞实现方法
2016/09/18 Javascript
Bootstrap模态框插件使用详解
2017/05/11 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
关于Ajax的原理以及代码封装详解
2017/09/08 Javascript
解决option标签selected=&quot;selected&quot;属性失效的问题
2017/11/06 Javascript
分享5个顶级的JavaScript Ajax组件库
2018/09/16 Javascript
python处理json数据中的中文
2014/03/06 Python
使用Python的Twisted框架构建非阻塞下载程序的实例教程
2016/05/25 Python
python验证码识别的示例代码
2017/09/21 Python
Django视图和URL配置详解
2018/01/31 Python
Python零基础入门学习之输入与输出
2019/04/03 Python
​如何愉快地迁移到 Python 3
2019/04/28 Python
Django 接收Post请求数据,并保存到数据库的实现方法
2019/07/12 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
2021/01/23 Python
护士实习鉴定范文
2013/12/22 职场文书
《穷人》教学反思
2014/04/08 职场文书
综合内勤岗位职责
2014/04/14 职场文书
学院党委班子四风问题自查报告及整改措施
2014/10/25 职场文书
党员示范岗材料
2014/12/19 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
《棉鞋里的阳光》教学反思
2016/02/20 职场文书
Linux7.6二进制安装Mysql8.0.27详细操作步骤
2021/11/27 MySQL
如何利用Python实现n*n螺旋矩阵
2022/01/18 Python
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/07 PostgreSQL