人生苦短,我学python之python+selenium select下拉框
转载自上海悠悠的博客
一、认识select
1.打开百度-设置-搜索设置界面,如下图所示
2.箭头所指位置,就是select选项框,打开页面元素定位,下方红色框框区域,可以看到select标签属性:
<select id="nr" name="NR">
3.选项有三个
<option selected="" value="10">每页显示10条</option>
<option value="20">每页显示20条</option>
<option value="50">每页显示50条</option>
二、二次定位
1.定位select里的选项有多种方式,这里先介绍一种简单的方法:二次定位
2.基本思路,先定位select框,再定位select里的选项
3.代码如下
4.还有另外一种写法也是可以的,把最下面两步合并成为一步:
driver.find_element_by_id("nr").find_element_by_xpath("//option[@value='50']").click()
三、直接定位
1.有很多小伙伴说firebug只能定位到select框,不能定位到里面的选项,其实是工具掌握的不太熟练。小编接下来教大家如何定位里面的选项。
2.用direbug定位到select后,下方查看元素属性地方,点select标签前面的+号,就可以展开里面的选项内容了。
3.然后自己写xpath定位或者css,一次性直接定位到option上的内容。(不会自己手写的,回头看前面的元素定位内容)
四、Select模块(index)
1.除了上面介绍的两种简单的方法定位到select选项,selenium还提供了更高级的玩法,导入Select模块。直接根据属性或索引定位。
2.先要导入select方法:
from selenium.webdriver.support.select import Select
3.然后通过select选项的索引来定位选择对应选项(从0开始计数),如选择第三个选项:select_by_index(2)
五、Select模块(value)
1.Select模块里面除了index的方法,还有一个方法,通过选项的value值来定位。每个选项,都有对应的value值,如
<select id="nr" name="NR">
<option selected="" value="10">每页显示10条</option>
<option value="20">每页显示20条</option>
<option value="50">每页显示50条</option>
2.第二个选项对应的value值就是"20":select_by_value("20")
六、Select模块(text)
1.Select模块里面还有一个更加高级的功能,可以直接通过选项的文本内容来定位。
2.定位“每页显示50条”:select_by_visible_text("每页显示50条")
七、Select模块其它方法
1.select里面方法除了上面介绍的三种,还有更多的功能如下
select_by_index() :通过索引定位
select_by_value() :通过value值定位
select_by_visible_text() :通过文本值定位
deselect_all() :取消所有选项
deselect_by_index() :取消对应index选项
deselect_by_value() :取消对应value选项
deselect_by_visible_text() :取消对应文本选项
first_selected_option() :返回第一个选项
all_selected_options() :返回所有的选项
八、整理代码如下:
# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
driver = webdriver.Firefox()
url = "https://www.baidu.com"
driver.get(url)
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()
# 通过text:select_by_visible_text()
s = driver.find_element_by_id("nr")
Select(s).select_by_visible_text("每页显示50条")
# # 分两步:先定位下拉框,再点击选项
# s = driver.find_element_by_id("nr")
# s.find_element_by_xpath("//option[@value='50']").click()
# # 另外一种写法
# driver.find_element_by_id("nr").find_element_by_xpath("//option[@value='50']").click()
# # 直接通过xpath定位
# driver.find_element_by_xpath(".//*[@id='nr']/option[2]").click()
# # 通过索引:select_by_index()
# s = driver.find_element_by_id("nr")
# Select(s).select_by_index(2)
# # 通过value:select_by_value()
# s = driver.find_element_by_id("nr")
# Select(s).select_by_value("20")
转载于:https://www.cnblogs.com/w770762632/p/8745261.html
人生苦短,我学python之python+selenium select下拉框相关推荐
- python select模块安装_python+selenium select下拉选择框定位处理方法
一.前言 总结一下python+selenium select下拉选择框定位处理的两种方式,以备后续使用时查询: 二.直接定位(XPath) 使用Firebug找到需要定位到的元素,直接右键复制XPa ...
- python获取select选中的值_Python3.x:遍历select下拉框获取value值
Python3.x:遍历select下拉框获取value值 Select提供了三种选择方法: # 通过选项的顺序,第一个为 0 select_by_index(index) # 通过value属性 s ...
- selenium webdriver学习(八)------------如何操作select下拉框(转)
selenium webdriver学习(八)------------如何操作select下拉框 博客分类: Selenium-webdriver 下面我们来看一下selenium webdriver ...
- layui怎么给下拉框赋值_layui给select下拉框赋值
转: layui给select下拉框赋值 //重新渲染表单函数 function renderForm() { layui.use('form', function() { var form = la ...
- JQ实现三个Select下拉框互斥
2019独角兽企业重金招聘Python工程师标准>>> 目的:三个select下拉框中的内容相同,当其中一个下拉框选中了其中一个值后,隐藏掉另外两个下拉框中相同的值. html: & ...
- select下拉框设置边框样式
select下拉框设置边框样式方法:设置select下拉框margin:-2,这样可以隐藏原来边框,然后设置父对象样式即可! <span style="border:1px solid ...
- 给select下拉框设置高度
给select下拉框设置高度 效果: select属性: onmousedown="if(this.options.length>4){this.size=4}" onblu ...
- layui 下拉框空选项不显示_layui下select下拉框不显示或没有效果
Layui会对select.checkbox.radio等原始元素隐藏,从而进行美化修饰处理.但这需要依赖于form组件,所以你必须加载 form,并且执行一个实例.值得注意的是:导航的Hover效果 ...
- select下拉框美化
http://dl.dbank.com/c04csxtesr 基本用法 单选下拉框的写法与传统的一样.支持TAB键打开和上下箭头选择option.支持onchange事件,见下面 选中项:2 代码如下 ...
最新文章
- Android之linux基础教学之七 中断下半部之软中断
- 在Ubuntu 16.10 安装 git 并上传代码至 git.oschina.net
- STM8S105系列单片机管脚复用配置(选项字节的配置)
- mysql网络安装教程_详细教程--MySQL的安装与配置
- 介绍Jupyter和Pandas
- 1622: [Usaco2008 Open]Word Power 名字的能量
- 谷歌员工确诊,全球顶级开发者大会F8取消!WHO将新冠肺炎全球风险级别升至最高...
- 帝友系统:中国P2P网络借贷可否复制Lending Club模式?
- 分布式消我爬取豆瓣10万短评,告诉你《复仇者联盟4》在讲什么?
- Python求解非齐次线性方程组代码
- linux设置开机自启动网络,linux设置开机自启动
- Matlab学习篇之s-function
- excel 操作技巧
- mysql 幂函数_MySQL-函数
- IIS MIME设置
- java存储字节_Java字节与字符流永久存储json数据
- pg 百万数据表 添加序号 20秒轻松搞定
- Oracle not in 范围超过 1000 报错问题及解决方案
- URL 重写就是把URL地址重新改写(汗^_^)。
- 认生、内敛不等同于孤独症[图]
热门文章
- 2019百度之星初赛1
- 深入SQL SERVER 2000的内存管理机制
- webconfig中注册HttpHandler报错:检测到在集成的托管管道模式下不适用的 ASP.NET 设置。...
- char* 和char[] 内存分配的区别(转载)
- JUC.Condition学习笔记[附详细源码解析]
- java.lang.ExceptionInInitializerError
- 微信小程序实现支付功能
- python分析nginx日志
- Kinect V2 基础教程之彩色图像
- 如何使用ping命令检查网络故障