python-web自动化:下拉列表操作
非select/option元素:
1.触发下拉列表出现
2.等待下拉列表中的元素出现,然后进行选择元素即可。
select/option元素:
下拉框操作-Select类
selenium提供Select类来处理select/option
1.引入
from selenium.webdriver.support.ui import Select
2.创建Select对象,传入元素
ele = driver.find_element_by_xpath(元素定位表达式)
s = Select(ele)
3.选择下拉列表值:
s.select_by_value(value值) #通过value
s.select_by_index(index) #通过下标
s.select_by_visible_text(文本') #通过文本
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains as AC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.support.ui import Select driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
time.sleep(3)
# 百度首页,设置链接元素定位
ele = driver.find_element(By.XPATH,"//div[@id='u1']/a[text()='设置']")
# 对设置链接进行鼠标悬浮操作
AC(driver).move_to_element(ele).perform() # 设置下拉框中选择【高级搜索】,浮窗下拉列表可用click进行点击操作
WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,"//a[text()='高级搜索']")))
driver.find_element_by_xpath("//a[text()='高级搜索']").click() # 等待高级设置搜索页面可见
WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,'//select[@name="ft"]')))
# 创建Select对象,参数为元素
ele = driver.find_element_by_xpath('//select[@name="ft"]')
s = Select(ele)
s.select_by_value('xls') #通过value
time.sleep(2)
s.select_by_index(1) #通过下标
time.sleep(2)
s.select_by_visible_text('RTF 文件 (.rtf)') #通过文本
补充!!
如何定位悬浮下拉列表
- 以百度首页为例子,在右上角有设置按钮,鼠标放在设置按钮上,会悬浮显示下拉列表
- selenium定位悬浮列表的内容时,需要先定位到设置按钮,然后再按 shift+ctrl+c 定位下拉列表
python-web自动化:下拉列表操作的更多相关文章
- Web自动化 - 选择操作元素 2
文章转自 白月黑羽教Python 前面我们看到了根据 id.class属性.tag名 选择元素. 如果我们要选择的 元素 没有id.class 属性, 这时候我们通常可以通过 CSS selector ...
- 【Python web自动化】之读取配置文件参数,利用cookie返回值进行跳过验证码进行登录操作
当进行Python的Web自动化时,会涉及到验证码问题,该如何跳过执行呢,下面请看代码: 1.首先新建配置文件*.ini格式 config.ini [db] #基础地址: baseurl = http ...
- python + web自动化,点击不生效,提示“selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element is not clickable at point (117, 674)”
前言: 在做web自动化时,遇到一个缩放了浏览器比例的操作,从100%缩小到80%,再进行点击的时候,弹出报错信息,无法点击 selenium.common.exceptions.ElementCli ...
- Selenium基于Python web自动化基础一 -- 基础汇总及简单操作
Selenium是UI层WEB端的自动化测试框架,也是目前市面上比较流行的自动化测试框架. ui层自动化测试本质是什么?模拟用户的真实操作行为. 基础汇总: 导入所需要的模块 from seleniu ...
- Web自动化 - 选择操作元素 1
文章转自 白月黑羽教Python 所有的 UI (用户界面)操作 的自动化,都需要选择界面元素. 选择界面元素就是:先让程序能找到你要操作的界面元素. 先找到元素,才能操作元素. 选择元素的方法 程序 ...
- python - web自动化测试 - 元素操作 - 鼠标键盘
# -*- coding:utf-8 -*- ''' @project: web学习 @author: Jimmy @file: 鼠标操作.py @ide: PyCharm Community Edi ...
- python - web自动化测试 - 元素操作 - 窗口切换
# -*- coding:utf-8 -*- ''' @project: web学习 @author: Jimmy @file: 元素操作-切换.py @ide: PyCharm Community ...
- python - web自动化测试 - 元素操作 - 等待
# -*- coding:utf-8 -*- ''' @project: web学习 @author: Jimmy @file: wait.py @ide: PyCharm Community Edi ...
- python - web自动化测试 - 元素操作 - 定位
# -*- coding:utf-8 -*- ''' @project: web学习 @author: Jimmy @file: find_ele.py @ide: PyCharm Community ...
- web自动化 -- js操作(滑动屏幕、修改页面)
一.selenium对 js 的操作方法 1.先定义 js 操作 或者 定义 目标元素 2.执行 js 操作: driver.execute_script(js操作) 或者 ...
随机推荐
- 解决Ubuntu19.04下网易云音乐打不开的问题
Ubuntu19.04下打开网易云音乐的v18.04版会出现以下错误: opt/netease/netease-cloud-music/netease-cloud-music: symbol look ...
- 30天代码day3 Intro to Conditional Statements
Boolean A logical statement that evaluates to true or false. In some languages, true is interchangea ...
- vue 数字随机滚动(数字递增)
html: <span v-for="i in numArr">{{i}}</span> data: numArr: [], methods: perN ...
- python画高斯分布图形
高斯分布,也叫正态分布,是一个在数学.物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力. 若随机变量X服从一个数学期望为μ.方差为σ^2的正态分布,记为N(μ,σ^2).其概率 ...
- elipse使用,Java和Javaee模式区别
Java带有用户界面的基本ide,缺少数据库和web开发工具 IDE(Integrated Development Environment,集成开发环境).集成开发环境(简称IDE)软件是用于程序开发 ...
- rapid7/metasploitable3 CTF摘要
rapid7/metasploitable3 俗话说,没图说个JB.我专门做了个图以供欣赏,做图技术可能有点糙,见谅见谅. 2016年11月,rapid7发布了metasploitable3,以后简称 ...
- C++ Object实体类
*暂未完成,因为无尽BUG滚滚来. 好长时间没写完,一是能力不够,二是我还得给老板写WEB的代码.可是我不会WEB!js和PHP简直就是世界上最好的语言,因为它们能够让人更快地进入极乐世界. 让我写一 ...
- Java BitSet解决海量数据去重
先提一个问题,怎么在40亿个整数中找到那个唯一重复的数字? 第一想法就是Set的不可重复性,依次把每个数字放入HashSet中,当放不去进去的时候说明这就是重复的数字,输出这个数字. if(hs.co ...
- rust
books--------------Rust 中文教程 RustPrimer http://wiki.jikexueyuan.com/project/rust-primer/any/any.html ...
- Day 15 模块
模块 ```python'''模块:一系列功能的集合体 定义模块:创建一个py文件就是一个模块,该py文件名就是模块名 使用模块:在要使用模块的文件中,通过 import 模块名 来导入模块''' ' ...