浏览器操作

  1. driver.back() # 后退
  2. driver.forward() # 前进
  3. driver.refresh() # 刷新

窗口操作

  1. driver.get_window_size() # 获取浏览器大小
  2. driver.set_window_size('','') # 设置浏览器大小
  3. driver.maximize_window() # 最大化浏览器
  4. driver.current_window_handle() # 返回当前操作的浏览器句柄
  5. driver.window_handles() # 返回所有打开server的浏览器句柄

截取当前页面(截图)

  1. driver.get_screenshot_as_file('pic.png') # 文件名必须以小写的.png结尾

执行JavaScript语句

  1. driver.execute_script('JavaScript Commond')
  2. driver.execute_script('window.scrollTo(0,0);') # 操作滚动条到浏览器最上面

 Cookie操作

  1. # 根据cookieKey,获取cookie信息
  2. cookie = driver.get_cookie('cookieKey')
  3.  
  4. # 获取所有cookie信息
  5. cookies = driver.get_cookies()
  6.  
  7. # 添加cookie,严格按照格式添加,cookie的key为name,value为value
  8. driver.add_cookie({'name': 'tmp', 'value': ''})
  9.  
  10. # 删除所有cookie信息
  11. driver.delete_all_cookies()
  12.  
  13. # 根据cookieKey删除对应cookie
  14. driver.delete_cookie('UiCode')

浏览器句柄及切换

  1. print(driver.window_handles) # 获取所有打开server的浏览器句柄,返回的是一个list
  2. bl = driver.find_element_by_css_selector('[href="/new-index/"]')
  3. bl.click() # 点击连接打开一个新的页面
  4. print(driver.window_handles) # 再次获取所有打开server的浏览器句柄
  5. handes = driver.window_handles
  6. driver.switch_to.window(handes[1]) # 切换浏览器句柄到新打开的这个页面
  7. cl = driver.find_element_by_css_selector('#newtag')
  8. cl.send_keys('AAAA')
  9. driver.close() # 关闭当前指针指向句柄的页面
  10. driver.switch_to.window(handes[0]) # 手动将浏览器指针切换回之前的页面
  11. driver.find_element_by_css_selector('#i1').send_keys('EEEE')
  12. driver.quit() # 关闭所有页面

关闭与退出

  1. driver.close() # 关闭当前页面,关闭页面后如果指针切换了,必须手动切回来
  2. driver.quit() # 关闭所有页面,退出驱动

ElementApi接口

  1. # 根据标签属性名称,获取属性value
  2. element.get_attribute('style')
  3.  
  4. # 向输入框输入字符串 如果input的type为file类型 可以输入文件绝对路径上传文件
  5. element.send_keys()
  6.  
  7. # 清除文本内容
  8. element.clear()
  9.  
  10. # 鼠标左键点击操作
  11. element.click()
  12.  
  13. # 通过属性名称获取属性
  14. element.get_property('id')
  15.  
  16. # 返回元素是否可见 True or False
  17. element.is_displayed()
  18.  
  19. # 返回元素是否被选中 True or False
  20. element.is_selected()
  21.  
  22. # 返回标签元素的名字
  23. element.tag_name
  24.  
  25. # 获取当前标签的宽和高
  26. element.size
  27.  
  28. # 获取元素的文本内容
  29. element.text
  30.  
  31. # 模仿回车按钮 提交数据
  32. element.submit()
  33.  
  34. # 获取当前元素的坐标
  35. element.location
  36.  
  37. # 截取图片
  38. element.screenshot()

弹框处理

  1. driver.find_element_by_css_selector('#confirm').click() # 点击按钮,弹出弹框
  2. print(driver.switch_to.alert.text) # 打印弹框返回的文本文字
  3. driver.switch_to.alert.accept() # 确认
  4. driver.switch_to.alert.dismiss() # 取消

常见异常

  1. NoSuchElementException:没有找到元素
  2.  
  3. NoSuchFrameException:没有找到iframe
  4.  
  5. NoSuchWindowException:没找到窗口句柄handle
  6.  
  7. NoSuchAttributeException:属性错误
  8.  
  9. NoAlertPresentException:没找到alert弹出框
  10.  
  11. ElmentNotVisibleException:元素不可见
  12.  
  13. ElementNotSelectableException:元素没有被选中
  14.  
  15. 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. Visual Studio Code python 代码快速自动提示

    1.file --> setting->设置 搜索 python 或者auto_complete setting.json { "explorer.confirmDelete&q ...

  2. 将shell脚本的执行过程和执行结果导入到log文件中

    [root@localhost scripts]# vim ping.sh #!/bin/bash set -x ##分步执行 exec &> /tmp/log.txt ##脚本执行的过 ...

  3. 在centOS7.2上编译gcc4.1.2

    1.下载安装gcc4.1.2安装包  wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2 注:其他版本的安装包可以在上级目录寻找到. ...

  4. puppet自动化安装服务

    puppet自动化部署 主机环境: server(master)端:172.25.7.1(server1.example.com) client(agent)端:172.25.7.2 172.25.7 ...

  5. 探索super()的执行顺序和__mro__方法

    class Base(object): def func(self): print('Base.func') class Foo(Base): def func(self): # 方式一:根据mro的 ...

  6. 工作流学习之入门demo

    /** * Copyright (C), 2015-2018, XXX有限公司 * FileName: DemoMain * Author: happy * Date: 2018/6/23 16:33 ...

  7. Codeforces Round #569 (Div. 2) B. Nick and Array

    链接: https://codeforces.com/contest/1180/problem/B 题意: Nick had received an awesome array of integers ...

  8. 【NOIP2016提高A组模拟8.15】Throw

    题目 分析 首先对于一个状态(a,b,c),假定a<=b<=c: 现在考虑一下这个状态,的转移方案: \[1,中间向两边跳(a,b,c)-->(a*2-b,a,c).(a,b,c)- ...

  9. postman—创建collection,执行collection和批量执行

    接口测试中,可以在 Postman 逐个创建请求.但当请求逐渐增多时,如果我们不采取任何措施管理,散乱的请求维护起来就比较麻烦了.这个时候我们可以创建测试集 Collection 来对这些请求进行管理 ...

  10. linux-文件系统-5

    cat /proc/partions cat /proc/mounts mount [options] -o [option] -t 文件类型 设备 挂载目录 设备: (1)设备文件:例如/dev/s ...