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中index()和seek()的用法(详解)
Apr 27 Python
Python编程把二叉树打印成多行代码
Jan 04 Python
Python实现按逗号分隔列表的方法
Oct 23 Python
python编写猜数字小游戏
Oct 06 Python
keras tensorflow 实现在python下多进程运行
Feb 06 Python
Python迭代器Iterable判断方法解析
Mar 16 Python
Python基于paramunittest模块实现excl参数化
Apr 26 Python
在python中list作函数形参,防止被实参修改的实现方法
Jun 05 Python
keras自动编码器实现系列之卷积自动编码器操作
Jul 03 Python
python实现简单的五子棋游戏
Sep 01 Python
python 带时区的日期格式化操作
Oct 23 Python
Python如何导出导入所有依赖包详解
Jun 08 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 日漫
php的计数器程序
2006/10/09 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
13个PHP函数超实用
2015/10/21 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
AngularJS基础 ng-open 指令简单实例
2016/08/02 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
2017/02/10 Javascript
js实现百度登录框鼠标拖拽效果
2017/03/07 Javascript
Vue入门之animate过渡动画效果
2018/04/08 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
[04:03][TI9趣味短片] 小鸽子茶话会
2019/08/20 DOTA
python解析html开发库pyquery使用方法
2014/02/07 Python
详解Python中的strftime()方法的使用
2015/05/22 Python
Python 序列的方法总结
2016/10/18 Python
python通过Windows下远程控制Linux系统
2018/06/20 Python
pandas去重复行并分类汇总的实现方法
2019/01/29 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
Python中无限循环需要什么条件
2020/05/27 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
HTML5新特性 多线程(Worker SharedWorker)
2017/04/24 HTML / CSS
师范生个人推荐信
2013/11/29 职场文书
应届行政管理专业个人自我评价
2013/12/28 职场文书
高三学生评语大全
2014/04/25 职场文书
元旦晚会活动总结
2014/07/09 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
旷课检讨书
2015/01/26 职场文书
父亲节寄语大全
2015/02/27 职场文书
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers