浏览器操作

 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接口详解的更多相关文章

  1. Selenium学习之==>ActionChainsApi接口详解

    ActionChains UI自动化测试过程中,经常遇到那种,需要鼠标悬浮后,要操作的才会元素出现的这种场景,那么我们就要模拟鼠标悬浮到某一个位置,做一系列的连贯操作,Selenium给我们提供了Ac ...

  2. Selenium:WebDriverApi接口详解

    浏览器操作 # 刷新 driver.refresh() # 前进 driver.forward() # 后退 driver.back() Cookie操作 # 根据cookieKey,获取cookie ...

  3. selenium之webdriverAPI接口详解

    1. 浏览器操作 driver.maximize_window() #最大化窗口driver.execute_script('window.scrollTo(0,0);') #滚动窗口到最上面driv ...

  4. Asp.Net MVC学习总结之过滤器详解(转载)

    来源:http://www.php.cn/csharp-article-359736.html   一.过滤器简介 1.1.理解什么是过滤器 1.过滤器(Filters)就是向请求处理管道中注入额外的 ...

  5. “全栈2019”Java第八十四章:接口中嵌套接口详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. “全栈2019”Java第八十三章:内部类与接口详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  7. Activiti工作流学习之流程图应用详解

    Activiti工作流学习之流程图应用详解 1.目的  了解Activiti工作流是怎样应用流程图的. 2.环境准备2.1.相关软件及版本    jdk版本:Jdk1.7及以上 IDE:eclipse ...

  8. [深入学习Web安全](5)详解MySQL注射

    [深入学习Web安全](5)详解MySQL注射 0x00 目录 0x00 目录 0x01 MySQL注射的简单介绍 0x02 对于information_schema库的研究 0x03 注射第一步—— ...

  9. JDBC常用接口详解

    JDBC中常用接口详解 ***DriverManager 第一.注册驱动 第一种方式:DriverManager.registerDriver(new com.mysql.jdbc.Driver()) ...

随机推荐

  1. apache 部署

    <VirtualHost *:80> ServerAdmin webmaster@dummy-host.localhost DocumentRoot "D:/EmpireServ ...

  2. 理解BurpSuit Intruder几种攻击方式

    Intruder标签下有四种攻击方式 Sniper Battering Ram Pitchfork Cluster Bomb 假设用户名密码词典分别如下: user1,user2,usre3 pass ...

  3. Mybatis的体系结构(转载)

    原文:http://blog.csdn.net/hupanfeng/article/details/9068003/ MyBatis的前身叫iBatis,本是apache的一个开源项目, 2010年这 ...

  4. python gitlab 学习笔记

    gitlab创建个人访问令牌(personal access token) https://blog.csdn.net/NGU2028070003/article/details/86634474 P ...

  5. 【洛谷P1919】A*B Problem升级版

    题目大意:rt 题解:将长度为 N 的大整数看作是一个 N-1 次的多项式,利用 FFT 计算多项式的卷积即可. 代码如下 #include <bits/stdc++.h> using n ...

  6. 初识Python,利用turtle画图

    目录 我的第三篇博客 一.初识Python 1.变量 2.注释 3.turtle库 我的第三篇博客 一.初识Python 1.变量 变量就是可变的的量,用来描述某个事物的属性.本质作用就是描述和接收变 ...

  7. Gitlab+Jenkins+Docker实现net core持续集成

    前言 在项目中使用这一套自动集成的体系之后,一直想找个时间总结出来,用于自己记录也打算将自己的所得分享给园友们,不经常写文章,可能会有错误的地方,希望各位不吝指正,我会及时的改正并表示感谢,希望大家能 ...

  8. #python#return和print的一些理解

    https://www.jianshu.com/p/18a6c0c76438 代码 (1) ++++++++++++++++++++++++++++++++++ x = 1y = 2def add ( ...

  9. 【NOIP2017提高组模拟12.17】环

    题目 小A有一个环,环上有n个正整数.他有特殊的能力,能将环切成k段,每段包含一个或者多个数字.对于一个切分方案,小A将以如下方式计算优美程度: 首先对于每一段,求出他们的数字和.然后对于每段的和,求 ...

  10. LDA主题模型评估方法–Perplexity

    在LDA主题模型之后,需要对模型的好坏进行评估,以此依据,判断改进的参数或者算法的建模能力. Blei先生在论文<Latent Dirichlet Allocation>实验中用的是Per ...