• 0
  • 1
分享

适合项目:

  1. 测试任务明确,不会频繁变动;

  2. 每日构建后的测试验证;

  3. 比较频繁的回归测试;

  4. 软件系统界面稳定,变动少;

  5. 需要在多平台上运行相同测试案例、组合遍历型的测试,大量的重复任务;

  6. 软件维护周期长。

WebDriver API

1、定位元素 (定位一组元素为find_elements_)

  • 根据ID find_element_by_id()

  • 根据Name find_element_by_name()

  • 根据Class find_element_by_class_name()

  • 根据tag find_element_by_tag_name() tag包括<div> <input>

  • 根据连接link

  1. 例如 <a class="demo" name="test" href="http://www.baidu.com">百度</a>

  2. 全名 find_element_by_link_text("百度")

  3. 模糊 find_element_by_partial_link_text("百")

  • 根据XPath定位

  1. 绝对路径定位 find_element_by_xpath("/html/body/div/input[1]") html元素的路径

  2. 元素属性定位 find_element_by_xpath("//input[@id='kw']")

  3. 使用逻辑运算 find_element_by_xpath("//input[@id='kw' and @class='demo']")

  4. 使用谷歌浏览器调试,在元素上右键-Copy-Copy XPath

  • 根据css find_element_by_css_selector()

  1. 有点像JQ,find_element_by_css_selector(".demo") #kw span>input

  2. 使用谷歌浏览器调试,在元素上右键-Copy-Copy selector

2、支持的浏览器

  1. browser=webdriver.Chrome()

  2. browser=webdriver.Firefox()

  3. browser=webdriver.Edge() # Microsoft Edge

  4. browser=webdriver.Safari()

  5. browser=webdriver.Android()

  6. browser=webdriver.BlackBerry()

  7. browser=webdriver.Ie()

  8. browser=webdriver.Opera()

  9. browser=webdriver.PhantomJS()

3、控制浏览器 driver=webdriver.Chrome(); webdriver.Chrome()

  1. 访问 driver.get(url);

  2. 后腿 driver.back()

  3. 前进 driver.forward()

  4. 关闭 driver,quit();

  5. 刷新 driver.refresh()

4、简单元素操作

  1. clear() 清除文本

  2. send_keys(*value) 模拟按键输入

  3. click() 单元元素

  4. submit() 表单提交

  5. size() 返回元素尺寸

  6. text() 获取文本

  7. get_attribute(name) 获取属性值 类似jq的attr

  8. is_displayed() 是否可见

5、鼠标事件 引入 from selenium.webdriver.common.action_chains import ActionChains

  • 常用方法

  1. perform 执行所有ActionChains中储存的行为,类似委托

  2. context_click() 右击

  3. double_click() 双击

  4. drag_and_drop(source,target) 拖动:在源元素上按住鼠标左键,然后移动到目标元素上释放

  5. move_to_element() 鼠标悬浮

  • 操作流程

  1. button=driver. find_element_by_id('kw');

  2. ActionChains(driver).context_click(button).perform();

6、键盘事件 from selenium.webdriver.common.keys import Keys

  1. send_keys(value) 输入框输入内容

  2. send_keys(Keys.BACK_SPACE) 删除键

  3. send_keys(Keys.SPACE) 空格键

  4. send_keys(Keys.TAB) Tab

  5. send_keys(Keys.ESCAPE) 回退

  6. send_keys(Keys.ENTER) 回车

  7. send_keys(Keys.CONTROL,'a') 全选、复制粘贴类似

  8. send_keys(Keys.F1) F1

7、获取验证信息

  1. driver.title 页面title

  2. driver.current_url 当前页面URL

8、设置元素等待

  1. sleep() from time import sleep 单位/秒

9、多表单切换

  1. 定位到iframe元素

  2. driver.switch_to.frame(value) iframe的id或name

  3. switch_to.parent_frame() 跳出当前一级表单

  4. switch_to.default_content() 调回最外层的页面

10、警告框处理 driver.switch_to_alert()

  1. text() 返回文本信息

  2. accept() 接受

  3. dismiss() 解散

11、操作Cookie

  1. get_cookies() 获取所有的cookie

  2. get_cookie(name) 返回key为name的cookie信息

  3. add_cookie(dict) 添加cookie, dcit是字典对象,有key、value

  4. delete_cookie(name,option) 删除cookie,name:cookie名称,option是cookie选项,只是路径、域

  5. delete_all_cookies()

12、调用js 代码

  • driver.execute_script()

13、窗口截图 一般sleep再截图

  • driver.getscreenshot_as_file(path) 文件路径和文件名

作者:你的眼睛能看多远了

原文链接:https://blog.csdn.net/u011210017/article/details/95034906

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 新浪科技讯北京时间9月15日早间消息,腾讯音乐在港交所发布公告称,已获得在港交所主板二次上市的原则性批准,将以介绍方式于香港联合交易所有限公司主板上市。公告还显示,腾讯音乐A类普通股预期将于9月21日开始在香港联交所买卖,股票代码“1698”。摩根大通和高盛公司为此次上市的联系保荐人。据悉,今年上半年,贝壳、蔚来汽车等中概企业也采用介绍上市方法成功登陆港股。招股书显示,腾讯音乐2019年-2021年营收分别为:254亿元、292亿元、312亿元。该公司2019年-2021年净利润分别为40亿元、42亿元、32亿元。此外,据其8月16日发布的最新财报数据,腾讯音乐2022年第二季度的非国际财务报...
            0 0 1070
            分享
          •   疫情波及面广泛,2020年,因为疫情引发的一系列后续事件,很多人的生活受到影响,作为一个打工人心里也有诸多想法。  要说这一年怎么样?用一个字总结:难。  据统计,2020年9月份,全国城镇调查失业率达8.7%,按照现行标准下劳动人口年龄18岁-59岁来计算,截至现在,中国失业人数已超过8000万人!  在年末的时候,笔者曾分别在boss直聘和智联上关注了一段时间的测试岗位,发现招聘的公司和职位很少,有时甚至2天都没有新的招聘信息,即使有也是hr例行公事而已,想投简历都很难。  不过好在这一年终于过去,大家又可以开始投简历准备面试了!在面试之前,笔者就来给大家分享一下,面试过程中基本都会被...
            0 0 932
            分享
          •  前言日常测试过程中,常常需要多种工具来接力完成自己的接口测试任务。 比如说, 使用swagger查看接口文档, 使用mock编造接口数据对前端页面做测试 使用postman测试后端接口, 用Jmeter来做接口自动化测试/性能测试。 那有没有一款软件可以完美集成以上所有的功能? 笔者发现一款叫Apifox的软件,一款完成能完成以上几乎所有软件的功能。官方给出Apifox(www.apifox.cn )的介绍是:接口管理,开发,测试全流程集成工具,软件的定位是Swagger+Mock+Jmeter+Postman。它能通过一套系统,一份数据,一站式完成接口测试全流程,同时能对api文...
            0 0 1045
            分享
          • 背景:最近有个项目,开发工时在1000+h,测试这边预估的工作量在400h左右,但按照项目截点算,预留给测试的时间只有200h左右。(这里先不考虑开发可能提前交付,以及项目截点延期)纵观,整个项目的研发过程,我们总会遇到测试资源和时间很有局限的情况:一是:在项目截点固定的前提下,可能受到产品、开发部分工作进度的压缩;二是:测试工作本身需要终止点,可能是上线时间到了,也可能是发现的问题都解决了。测试工作最大的挑战就是在有效的时间内发现较多的缺陷,从而使软件达到一个相对可靠的质量(不敢说绝对可靠,毕竟发现的问题越多隐藏的问题也就越多)。这就要求我们测试要有策略性的测试,那么什么是测试策略呢?何为测...
            0 0 1128
            分享
          • 一、TCP协议简介 因特网的运输层在应用程序断点之间传送应用程序报文,在这一层主要有两种传输协议 TCP和 UDP,利用这两种协议能够传输报文。TCP 协议的全称是 Transmission Control Protocol 的缩写,意思是传输控制协议,HTTP底层采用TCP 作为通信协议,这是因为 TCP 是一种可靠的协议,保证通讯的数据不丢失。TCP协议提供面向连接的服务,它能够控制并确认报文能够准确送达,并提供了拥塞机制来控制网络传输,因此当网络拥塞时,会抑制其传输速率。TCP,提供面向连接的服务,在传送数据之前必须先建立连接,数据传送完成后要释放连接。因此TCP是一种十分可靠...
            0 0 1231
            分享
      • 51testing软件测试圈微信