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 相关文章推荐
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
Oct 18 Python
利用ctypes提高Python的执行速度
Sep 09 Python
python3+PyQt5使用数据库表视图
Apr 24 Python
Python中Numpy包的安装与使用方法简明教程
Jul 03 Python
numpy.where() 用法详解
May 27 Python
python3.7 sys模块的具体使用
Jul 22 Python
使用python写一个自动浏览文章的脚本实例
Dec 05 Python
TFRecord文件查看包含的所有Features代码
Feb 17 Python
Python word文本自动化操作实现方法解析
Nov 05 Python
pytorch MSELoss计算平均的实现方法
May 12 Python
Python使用OpenCV实现虚拟缩放效果
Feb 28 Python
分享Python获取本机IP地址的几种方法
Mar 17 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
ThinkPHP的URL重写问题
2014/06/22 PHP
一个经典实用的PHP图像处理类分享
2014/11/18 PHP
php结合ACCESS的跨库查询功能
2015/06/12 PHP
PHP模拟asp中response类实现方法
2015/08/08 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
js实现简单模态窗口,背景灰显
2008/11/14 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
JS获取各种浏览器窗口大小的方法
2014/01/14 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
JavaScript+html5 canvas实现图片破碎重组动画特效
2016/02/22 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
JS实现仿PS的调色板效果完整实例
2016/12/21 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
微信小程序地图绘制线段并且测量(实例代码)
2020/01/02 Javascript
js对象简介与基本用法示例
2020/03/13 Javascript
js实现小时钟效果
2020/03/25 Javascript
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
Python中的闭包实例详解
2014/08/29 Python
Python检测字符串中是否包含某字符集合中的字符
2015/05/21 Python
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
python基础之入门必看操作
2017/07/26 Python
PyQt5 如何让界面和逻辑分离的方法
2020/03/24 Python
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
英文简历中的自我评价
2013/10/06 职场文书
《傅雷家书》教学反思
2014/04/20 职场文书
节水口号标语
2014/06/19 职场文书
在教室放鞭炮的检讨书
2014/09/28 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书