基于python3.6,selenium3.141,详细资料介绍查看官方API文档,点击这里

一、对浏览器操作

 driver = webdriver.Chrome()  # 初始化chrome
driver1 = webdriver.Firefox() # 初始化Firefox
driver2 = webdriver.Ie() # 初始化IE
driver3 = webdriver.Edge() # # 初始化Edge
driver.get("https://www.baidu.com") # 打开url
driver.capabilities['version'] # 获取浏览器version
driver.maximize_window() # 将浏览器最大化显示
driver.set_window_size(480, 800) # 设置浏览器宽480、高800显示
driver.back() # 浏览器后退
driver.forward() # 浏览器前进
driver.title # 获取当前页面的title
driver.current_url # 获取当前页面的URL
driver.current_window_handle # 获取当前浏览器窗口的句柄
driver.close() # 关闭浏览器,关闭当前浏览器,即最上层那个
driver.quit() # 关闭webdriver打开的所有浏览器
各浏览器驱动下载地址,注意版本要对上
Chrome:http://npm.taobao.org/mirrors/chromedriver/
Edge:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Firefox:https://github.com/mozilla/geckodriver/releases
Safari:https://webkit.org/blog/6900/webdriver-support-in-safari-10/
IE:http://selenium-release.storage.googleapis.com/index.html

二、页面元素定位

最好使用id,name的方式定位元素,因为一般这两个元素是全局唯一的;有时候元素不唯一,推荐使用xpath或者css定位,根据个人喜好而定,不推荐使用class

 # return :WebElement - the element if it was found
driver.find_element(By.ID, 'foo')
driver.find_element_by_id("foo")
driver.find_element_by_name("foo")
driver.find_element_by_class_name("foo")
driver.find_element_by_tag_name("h1")
driver.find_element_by_link_text("Sign In")
driver.find_element_by_partial_link_text("Sign")
driver.find_element_by_xpath("//div/td[1]")
driver.find_element_by_css_selector("#foo")
 # return: list of WebElement - a list with elements if any was found. An empty list if not
driver.find_elements(By.CLASS_NAME, 'foo')
driver.find_elements_by_id("foo")
driver.find_elements_by_name("foo")
driver.find_elements_by_class_name("foo")
driver.find_elements_by_tag_name("h1")
driver.find_elements_by_link_text("Sign In")
driver.find_elements_by_partial_link_text("Sign")
driver.find_elements_by_xpath("//div[contains(@class, 'foo')]")
driver.find_elements_by_css_selector("#foo")

三、页面元素操作

 # 清除输入框的默认内容
driver.find_element_by_id("foo").clear()
# 输入框里输入context
driver.find_element_by_id("foo").send_keys("context")
# 单击一个按钮
driver.find_element_by_id("foo").click()
# 提交表单
driver.find_element_by_id("foo").submit()
# 返回元素的尺寸
driver.driver.find_element_by_id("foo").size
# 获取元素文本
driver.find_element_by_id("foo").text
# 返回元素的属性值,元素拥有的任意属性。如果是input的,可以通过获取value值获得当前输入的值
driver.find_element_by_id("foo").get_attribute('value')
# 返回元素的结果是否可见,返回结果为True或False
driver.find_element_by_id("foo").is_displayed()

四、鼠标事件

 from selenium.webdriver.common.action_chains import ActionChains
# 定位鼠标元素
mouse = driver.find_element_by_id("foo")
# 对定位到的元素执行鼠标右键操作
ActionChains(driver).context_click(mouse).perform()
# 对定位到的元素执行鼠标双击操作
ActionChains(driver).double_click(mouse).perform()
# 对定位到的元素执行鼠标移动到上面的操作
ActionChains(driver).move_to_element(mouse).perform()
# 对定位到的元素执行鼠标左键按下的操作,注意这里是点击下去不释放
ActionChains(driver).click_and_hold(mouse).perform() # 鼠标拖放操作
element = driver.find_element_by_id("foo1") # 定位元素的原位置
target = driver.find_element_by_id("foo2") # 定位元素要移动到的目标位置
ActionChains(driver).drag_and_drop(element, target).perform() # 执行元素的移动操作

五、键盘事件

 from selenium.webdriver.common.keys import Keys

 driver.find_element_by_id("foo").send_keys(Keys.BACK_SPACE)  # 删除键(BackSpace)
driver.find_element_by_id("foo").send_keys(Keys.SPACE) # 空格键(Space)
driver.find_element_by_id("foo").send_keys(Keys.TAB) # 制表键(Tab)
driver.find_element_by_id("foo").send_keys(Keys.ESCAPE) # 回退键(Esc)
driver.find_element_by_id("foo").send_keys(Keys.ENTER) # 回车键(Enter)
driver.find_element_by_id("foo").send_keys(Keys.DELETE) # 删除键(Delete)
driver.find_element_by_id("foo").send_keys(Keys.CONTROL, 'a') # 全选(Ctrl+A)
driver.find_element_by_id("foo").send_keys(Keys.CONTROL, 'c') # 复制(Ctrl+C)
driver.find_element_by_id("foo").send_keys(Keys.CONTROL, 'x') # 剪切(Ctrl+X)
driver.find_element_by_id("foo").send_keys(Keys.CONTROL, 'v') # 粘贴(Ctrl+V)

python+selenium自动测试之WebDriver的常用API(基础篇一)的更多相关文章

  1. python+selenium自动测试之WebDriver的常用API(基础篇二)

    本篇介绍一下python+selenium复杂操作的处理,基于python3.6,selenium3.141,详细资料介绍查看官方API文档,点击这里 一.常见特殊情况处理如iframe/弹窗处理 有 ...

  2. Python + Selenium 自动发布文章(一):开源中国

    https://blog.csdn.net/qq_28804275/article/details/80891949 https://blog.csdn.net/qq_28804275/article ...

  3. Python+selenium常用方法(Webdriver API)

    小编整理了目前学习的Python+selenium常用的一些方法函数,以后有新增再随时更新. 加载浏览器驱动: webdriver.Firefox() 打开页面:get() 关闭浏览器:quit() ...

  4. python selenium自动化测试之路(1)--分层测试概念、selenium工具介绍

    1.分层自动化测试概念 传统的自动化市场更关注产品UI层的自动化测试,而分层的自动化测试倡导产品开发的不同阶段都需要自动化测试 大多公司与研发团队其实是忽略了单元测试与集成测试阶段的自动化测试工作,所 ...

  5. Python+selenium自动化测试之浏览器基础操作

    **​​前言** 本文主要讲解webdriber框架,Selenium 就像真实用户所做的一样,Selenium 测试可以在 Windows.Linux 和 Macintosh上的 Internet ...

  6. ASP.NET Web API 基础篇1

    ASP.NET Web API 直到我膝盖中了一箭[1]基础篇 无题 蓦然回首,那些年,我竟然一直很二. 小时候,读武侠小说的时候,看到那些猪脚,常常会产生一种代入感,幻想自己也会遭遇某种奇遇,遇到悬 ...

  7. 我拖拖拖--H5拖放API基础篇

    不要搞错,本文不是讲如何拖地的.看过<javascript精粹>朋友应该知道,他实现拖放的过程比较复杂,现在时代不同了,我们用H5的新的拖放API就能非常方便的实现拖放效果了.最近在园子见 ...

  8. [selenium webdriver Java]常用api

    1. 获取元素文本 WebElement类的getText()方法返回元素的innerText属性.所以元素里如果有子节点一样也会被返回出来.如下所示 public class GetText { @ ...

  9. Python+selenium自动循环扔QQ邮箱漂流瓶

    Python代码如下: # coding=utf-8 from selenium import webdriver from time import sleep from random import ...

随机推荐

  1. tornado之用户验证装饰器

    authenticated装饰器 为了使用Tornado的认证功能,我们需要对登录用户标记具体的处理函数.我们可以使用@tornado.web.authenticated装饰器完成它.当我们使用这个装 ...

  2. iPhone 系统刷机

    1. 下载好固件(爱思 或者 pp助手) e.g. http://jailbreak.25pp.com/gujian/ 2. 将电脑与手机连接上,弹出iTunes软件即可 3. 长按手机电源键 关闭手 ...

  3. BUG in Ubuntu--Could not get lock /var/lib/dpkg/lock

    在ubuntu中通过apt安装软件时,报错: E: Could not : Resource temporarily unavailable) E: Unable to lock the admini ...

  4. static_assert与assert

    C++0x中引入了static_assert这个关键字,用来做编译期间的断言,因此叫做静态断言. 其语法:static_assert(常量表达式,提示字符串). 如果第一个参数常量表达式的值为fals ...

  5. 第七周博客作业<西北师范大学|李晓婷>

    1.助教博客链接:https://home.cnblogs.com/u/lxt-/ 2.本周应批作业0,实批作业0. 3.本周小结:本周我们助教开始准备团队项目题目,下周三之前将会进行作业提交.

  6. vue路由实现多视图的单页应用

    多视图的单页应用:在一个页面中实现多个页面不同切换,url也发生相应变化. router-view结合this.$router.push("/pickUp")实现,效果如下: 当点 ...

  7. hd RFS USB Sever/ NetworkUSB/16 Pro+ / NET-USB16-P+

    s 方法一: 第一步,USB设备lan2和台式机网线对插,设置台式机IP 192.168.1.252.子网掩码255.255.255.0第二部,打开设备USB 固有IP页面192.168.1.250 ...

  8. [Deep Learning] 深度学习中消失的梯度

    好久没有更新blog了,最近抽时间看了Nielsen的<Neural Networks and Deep Learning>感觉小有收获,分享给大家. 了解深度学习的同学可能知道,目前深度 ...

  9. Python——各类库的安装(持续更新)

    一.BeautifulSoup 说明:www.crummy.com:Beautiful Soup 3只能在python2.x版本中运行,而Beautiful Soup 4还可以在python3.x版本 ...

  10. UE4命令行使用,解释

    命令行在外部 从命令行运行编辑项目 1 导航到您的[LauncherInstall][VersionNumber]\Engine\Binaries\Win64 目录中. 2 右键单击上 UE4Edit ...