Selenium学习之==>WebDriverApi接口详解
浏览器操作
driver.back() # 后退
driver.forward() # 前进
driver.refresh() # 刷新
窗口操作
driver.get_window_size() # 获取浏览器大小
driver.set_window_size('','') # 设置浏览器大小
driver.maximize_window() # 最大化浏览器
driver.current_window_handle() # 返回当前操作的浏览器句柄
driver.window_handles() # 返回所有打开server的浏览器句柄
截取当前页面(截图)
driver.get_screenshot_as_file('pic.png') # 文件名必须以小写的.png结尾
执行JavaScript语句
driver.execute_script('JavaScript Commond')
driver.execute_script('window.scrollTo(0,0);') # 操作滚动条到浏览器最上面
Cookie操作
# 根据cookieKey,获取cookie信息
cookie = driver.get_cookie('cookieKey') # 获取所有cookie信息
cookies = driver.get_cookies() # 添加cookie,严格按照格式添加,cookie的key为name,value为value
driver.add_cookie({'name': 'tmp', 'value': ''}) # 删除所有cookie信息
driver.delete_all_cookies() # 根据cookieKey删除对应cookie
driver.delete_cookie('UiCode')
浏览器句柄及切换
print(driver.window_handles) # 获取所有打开server的浏览器句柄,返回的是一个list
bl = driver.find_element_by_css_selector('[href="/new-index/"]')
bl.click() # 点击连接打开一个新的页面
print(driver.window_handles) # 再次获取所有打开server的浏览器句柄
handes = driver.window_handles
driver.switch_to.window(handes[1]) # 切换浏览器句柄到新打开的这个页面
cl = driver.find_element_by_css_selector('#newtag')
cl.send_keys('AAAA')
driver.close() # 关闭当前指针指向句柄的页面
driver.switch_to.window(handes[0]) # 手动将浏览器指针切换回之前的页面
driver.find_element_by_css_selector('#i1').send_keys('EEEE')
driver.quit() # 关闭所有页面
关闭与退出
driver.close() # 关闭当前页面,关闭页面后如果指针切换了,必须手动切回来
driver.quit() # 关闭所有页面,退出驱动
ElementApi接口
# 根据标签属性名称,获取属性value
element.get_attribute('style') # 向输入框输入字符串 如果input的type为file类型 可以输入文件绝对路径上传文件
element.send_keys() # 清除文本内容
element.clear() # 鼠标左键点击操作
element.click() # 通过属性名称获取属性
element.get_property('id') # 返回元素是否可见 True or False
element.is_displayed() # 返回元素是否被选中 True or False
element.is_selected() # 返回标签元素的名字
element.tag_name # 获取当前标签的宽和高
element.size # 获取元素的文本内容
element.text # 模仿回车按钮 提交数据
element.submit() # 获取当前元素的坐标
element.location # 截取图片
element.screenshot()
弹框处理
driver.find_element_by_css_selector('#confirm').click() # 点击按钮,弹出弹框
print(driver.switch_to.alert.text) # 打印弹框返回的文本文字
driver.switch_to.alert.accept() # 确认
driver.switch_to.alert.dismiss() # 取消
常见异常
NoSuchElementException:没有找到元素 NoSuchFrameException:没有找到iframe NoSuchWindowException:没找到窗口句柄handle NoSuchAttributeException:属性错误 NoAlertPresentException:没找到alert弹出框 ElmentNotVisibleException:元素不可见 ElementNotSelectableException:元素没有被选中 TimeoutException:查找元素超时
Selenium学习之==>WebDriverApi接口详解的更多相关文章
- Selenium学习之==>ActionChainsApi接口详解
ActionChains UI自动化测试过程中,经常遇到那种,需要鼠标悬浮后,要操作的才会元素出现的这种场景,那么我们就要模拟鼠标悬浮到某一个位置,做一系列的连贯操作,Selenium给我们提供了Ac ...
- Selenium:WebDriverApi接口详解
浏览器操作 # 刷新 driver.refresh() # 前进 driver.forward() # 后退 driver.back() Cookie操作 # 根据cookieKey,获取cookie ...
- selenium之webdriverAPI接口详解
1. 浏览器操作 driver.maximize_window() #最大化窗口driver.execute_script('window.scrollTo(0,0);') #滚动窗口到最上面driv ...
- Asp.Net MVC学习总结之过滤器详解(转载)
来源:http://www.php.cn/csharp-article-359736.html 一.过滤器简介 1.1.理解什么是过滤器 1.过滤器(Filters)就是向请求处理管道中注入额外的 ...
- “全栈2019”Java第八十四章:接口中嵌套接口详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第八十三章:内部类与接口详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Activiti工作流学习之流程图应用详解
Activiti工作流学习之流程图应用详解 1.目的 了解Activiti工作流是怎样应用流程图的. 2.环境准备2.1.相关软件及版本 jdk版本:Jdk1.7及以上 IDE:eclipse ...
- [深入学习Web安全](5)详解MySQL注射
[深入学习Web安全](5)详解MySQL注射 0x00 目录 0x00 目录 0x01 MySQL注射的简单介绍 0x02 对于information_schema库的研究 0x03 注射第一步—— ...
- JDBC常用接口详解
JDBC中常用接口详解 ***DriverManager 第一.注册驱动 第一种方式:DriverManager.registerDriver(new com.mysql.jdbc.Driver()) ...
随机推荐
- 从分析攻击方式来谈如何防御DDoS攻击
DDoS攻击的定义: DDoS攻击全称——分布式拒绝服务攻击,是网络攻击中非常常见的攻击方式.在进行攻击的时候,这种方式可以对不同地点的大量计算机进行攻击,进行攻击的时候主要是对攻击的目标发送超过其处 ...
- docker 开启特权模式
可以在创建容器时通过 --privileged=true 开启特权模式. 创建容器: # docker run -d --name centos7 --privileged=true centos7: ...
- php通过反射方法调用私有方法
PHP 5 具有完整的反射 API,添加了对类.接口.函数.方法和扩展进行反向工程的能力. 下面我们演示一下如何通过反射,来调用执行一个类中的私有方法: <?php //MyClass这个类中包 ...
- C#基础知识之理解HTTP协议
在互联网时代HTTP协议的重要性无需多言,对于技术岗位的同学们来说理解掌握HTTP协议是必须的.本篇博客就从HTTP协议的演进.特性.重要知识点和工作中常见问题的总结等方面进行简单的介绍.理解掌握了这 ...
- Codeforces Round #569 (Div. 2) B. Nick and Array
链接: https://codeforces.com/contest/1180/problem/B 题意: Nick had received an awesome array of integers ...
- Java面试之持久层(10)
91,什么是ORM? 对象关系映射(Object-Relational Mapping,简称ORM)是一种为了解决程序的面向对象模型与数据库的关系模型互不匹配问题的技术: 简单的说,O ...
- js对象的创建模式
方式一: Object构造函数模式 * 套路: 先创建空Object对象, 再动态添加属性/方法 * 适用场景: 起始时不确定对象内部数据 * 问题: 语句太多 /* 一个人: name:" ...
- Missing radix parameter.报错解决方法
当报“Missing radix parameter.”这个错的时候,是因为使用parseInt没有传第二个参数,以前简写的时候大家几乎都不传,甚至不知道还有第二个参数. 当时候Eslint预发检查时 ...
- luogu 4366 [Code+#4]最短路 Dijkstra + 位运算 + 思维
这个题思路十分巧妙,感觉很多题都有类似的套路. 我们发现异或操作其实就是将一个数的二进制的若干个 $0$ 变成 $1$,或者一些 $1$ 变成 $0$. 而每次按照某种顺序一位一位地异或也可以起到同时 ...
- linux服务器在线测速
cd /tmpwget https://raw.github.com/sivel/speedtest-cli/master/speedtest.py或者wget https://raw.githubu ...