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如何使用AIML搭建聊天机器人
Jan 27 Python
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
Aug 31 Python
Python实现多属性排序的方法
Dec 05 Python
使用Python刷淘宝喵币(低阶入门版)
Oct 30 Python
windows下python安装pip方法详解
Feb 10 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
Python bytes string相互转换过程解析
Mar 05 Python
Pyecharts地图显示不完成问题解决方案
May 11 Python
Python 使用office365邮箱的示例
Oct 29 Python
Python析构函数__del__定义原理解析
Nov 20 Python
python 实现IP子网计算
Feb 18 Python
PyTorch的Debug指南
May 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
农民和部队如何穿矿
2020/03/04 星际争霸
杏林同学录(八)
2006/10/09 PHP
PHP之COOKIE支持详解
2010/09/20 PHP
PHP四大安全策略
2014/03/12 PHP
php强制更新图片缓存的方法
2015/02/11 PHP
分享php分页的功能模块
2015/06/16 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
ThinkPHP框架分布式数据库连接方法详解
2017/03/14 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
Js 刷新框架页的代码
2010/04/13 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
2016/09/06 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
js将URL网址转为16进制加密与解密函数
2020/03/04 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
微信小程序实现首页弹出广告
2020/12/03 Javascript
JS实现鼠标移动拖尾
2020/12/27 Javascript
python网络编程学习笔记(四):域名系统
2014/06/09 Python
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
Python多进程multiprocessing用法实例分析
2017/08/18 Python
Python常见工厂函数用法示例
2018/03/21 Python
python set内置函数的具体使用
2019/07/02 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
Docker部署Python爬虫项目的方法步骤
2020/01/19 Python
详解python中的异常和文件读写
2021/01/03 Python
canvas使用注意点总结
2013/07/19 HTML / CSS
Zooplus罗马尼亚:宠物食品和配件
2019/11/02 全球购物
广告设计专业自荐信范文
2013/11/14 职场文书
银行求职信个人范文
2013/12/16 职场文书
目标责任书范文
2014/04/14 职场文书
党员民主评议个人总结
2014/10/20 职场文书
法定代表人证明书
2014/11/28 职场文书
Pandas数据结构之Series的使用
2022/03/31 Python