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编程中包的概念与管理
Oct 16 Python
Python基于贪心算法解决背包问题示例
Nov 27 Python
python 对key为时间的dict排序方法
Oct 17 Python
Python绘图Matplotlib之坐标轴及刻度总结
Jun 28 Python
python3字符串操作总结
Jul 24 Python
用Python解数独的方法示例
Oct 24 Python
在Python中字符串、列表、元组、字典之间的相互转换
Nov 15 Python
在python tkinter界面中添加按钮的实例
Mar 04 Python
IntelliJ 中配置 Anaconda的过程图解
Jun 01 Python
通过实例解析python subprocess模块原理及用法
Oct 10 Python
解决python 执行shell命令无法获取返回值的问题
Dec 05 Python
python中的sys模块和os模块
Mar 20 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读取MySQL数据代码
2008/06/05 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
老生常谈PHP 文件写入和读取(必看篇)
2017/05/22 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
jQuery中prevUntil()方法用法实例
2015/01/08 Javascript
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
浅析JavaScript动画
2015/06/10 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
javaScript事件机制兼容【详细整理】
2016/07/23 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
jQuery事件绑定用法详解
2016/09/08 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
JS实现探测网站链接的方法【测试可用】
2016/11/08 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
防止页面url缓存中ajax中post请求的处理方法
2017/10/10 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
python中pass语句用法实例分析
2015/04/30 Python
Python中return语句用法实例分析
2015/08/04 Python
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
python安装scipy的方法步骤
2019/06/26 Python
Python谱减法语音降噪实例
2019/12/18 Python
python 控制台单行刷新,多行刷新实例
2020/02/19 Python
关于Django Models CharField 参数说明
2020/03/31 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
2020/12/28 Python
对CSS3选择器的研究(详解)
2016/09/16 HTML / CSS
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
飞利浦法国官网:Philips法国
2019/07/10 全球购物
DC Shoes荷兰官方网站:美国极限运动品牌
2019/10/22 全球购物
餐饮收银员岗位职责
2014/02/07 职场文书
“学雷锋活动月”总结
2014/03/09 职场文书
《春笋》教学反思
2014/04/15 职场文书
结婚通知短信大全
2015/04/17 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
2019年度开业庆典祝福语大全!
2019/07/05 职场文书