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处理大数字的方法
May 27 Python
Python两个内置函数 locals 和globals(学习笔记)
Aug 28 Python
python 开发的三种运行模式详细介绍
Jan 18 Python
老生常谈进程线程协程那些事儿
Jul 24 Python
python实现学生管理系统
Jan 11 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
Feb 23 Python
Python实现二维曲线拟合的方法
Dec 29 Python
python实现诗歌游戏(类继承)
Feb 26 Python
Python爬虫——爬取豆瓣电影Top250代码实例
Apr 17 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
Apr 24 Python
django为Form生成的label标签添加class方式
May 20 Python
Python pandas之求和运算和非空值个数统计
Aug 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
PHP之短标签开启设置
2013/06/17 PHP
CI框架学习笔记(二) -入口文件index.php
2014/10/27 PHP
仅img元素创建后不添加到文档中会执行onload事件的解决方法
2011/07/31 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
Jquery实现弹性滑块滑动选择数值插件
2015/08/08 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
JavaScript基础之流程控制语句的用法
2017/08/31 Javascript
Angular使用Md5加密的解决方法
2017/09/16 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
vue页面切换过渡transition效果
2018/10/08 Javascript
vue实现购物车列表
2020/06/30 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
[20:30]职业巡回赛回顾
2018/08/09 DOTA
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
python使用cookielib库示例分享
2014/03/03 Python
python读写ini文件示例(python读写文件)
2014/03/25 Python
Python的Flask框架与数据库连接的教程
2015/04/20 Python
在Python的Django框架中创建和使用模版
2015/07/15 Python
Python字符编码判断方法分析
2016/07/01 Python
python版本的仿windows计划任务工具
2018/04/30 Python
python2 对excel表格操作完整示例
2020/02/23 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
Python读入mnist二进制图像文件并显示实例
2020/04/24 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
2021/03/04 Python
FC-Moto丹麦:欧洲最大的摩托车服装和头盔商店之一
2019/08/20 全球购物
2014医学院领导干部四风对照检查材料思想汇报
2014/09/16 职场文书
教师自查自纠材料
2014/10/14 职场文书
银行贷款收入证明
2014/10/17 职场文书
2015年医院后勤工作总结
2015/05/20 职场文书
Springboot集成阿里云OSS上传文件系统教程
2021/06/28 Java/Android