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模块之StringIO使用示例
Apr 08 Python
python字典排序实例详解
May 20 Python
python去除文件中空格、Tab及回车的方法
Apr 12 Python
Python实现matplotlib显示中文的方法详解
Feb 06 Python
如何利用Boost.Python实现Python C/C++混合编程详解
Nov 08 Python
python3 面向对象__类的内置属性与方法的实例代码
Nov 09 Python
Python实现的大数据分析操作系统日志功能示例
Feb 11 Python
Python多线程同步---文件读写控制方法
Feb 12 Python
Python 实现还原已撤回的微信消息
Jun 18 Python
用python画一只可爱的皮卡丘实例
Nov 21 Python
Python 读取xml数据,cv2裁剪图片实例
Mar 10 Python
如何使用scrapy中的ItemLoader提取数据
Sep 30 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实现递归与无限分类的方法
2015/02/16 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
2016/04/26 PHP
用JavaScript实现单继承和多继承的简单方法
2009/03/29 Javascript
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
2010/03/09 Javascript
jQuery UI AutoComplete 使用说明
2011/06/20 Javascript
用jquery实现输入框获取焦点消失文字
2013/04/27 Javascript
解析javascript 浏览器关闭事件
2013/07/08 Javascript
javascript的tab切换原理与效果实现方法
2015/01/10 Javascript
基于Vuejs框架实现翻页组件
2020/06/29 Javascript
javascript基本数据类型和转换
2017/03/17 Javascript
JavaScript运动框架 链式运动到完美运动(五)
2017/05/18 Javascript
Vue组件开发技巧总结
2018/03/04 Javascript
微信网页授权并获取用户信息的方法
2018/07/30 Javascript
js实现无缝轮播图效果
2020/03/09 Javascript
使用next.js开发网址缩短服务的方法
2020/06/17 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
整理Python 常用string函数(收藏)
2016/05/30 Python
Python数据分析之如何利用pandas查询数据示例代码
2017/09/01 Python
Python网络编程详解
2017/10/31 Python
Python3实现发送QQ邮件功能(html)
2017/12/15 Python
django文档学习之applications使用详解
2018/01/29 Python
Python查看微信撤回消息代码
2018/06/07 Python
python pandas时序处理相关功能详解
2019/07/03 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
Python集合操作方法详解
2020/02/09 Python
Python过滤序列元素的方法
2020/07/31 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
2021/03/03 Python
美国著名的团购网站:Woot
2016/08/02 全球购物
Stefania Mode美国:奢华设计师和时尚服装
2018/01/07 全球购物
医院护士专业个人的求职信
2013/12/09 职场文书
《雾凇》教学反思
2014/02/17 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
纪检监察立案决定书
2015/06/24 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers