下面将使用WebDriver中的send_keys来模拟键盘按键输入

测试用例场景


  send_keys方法可以模拟一些组合键操作:

  • ctrl+a
  • ctrl+c
  • ctrl+v
  • 等。

  另外有时候我们需要在测试时使用tab键将焦点转移到下一个元素,这时候也需要send_keys。在某些更复杂的情况下,还会出现使用send_keys来模拟上下键来操作下拉列表的情况。

Python脚本


测试HTML代码:

  1. <html>
  2. <head>
  3. <meta http-equiv="content-type" content="text/html;charset=utf-8" />
  4. <title>send keys</title>
  5. <script type="text/javascript" async="" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  6. <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" />
  7. </head>
  8. <body>
  9. <h3>send keys</h3>
  10. <div class="row-fluid">
  11. <div class="span3">
  12. <div class="well">
  13. <label>A</label>
  14. <textarea rows="10", cols="10" id="A">I think watir-webdriver is better than selenium-webdriver</textarea>
  15. </div>
  16. </div>
  17. <div class="span3">
  18. <div class="well">
  19. <label>B</label>
  20. <textarea rows="10", cols="10" id="B"></textarea>
  21. </div>
  22. </div>
  23. </div>
  24. </body>
  25. <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
  26. </html>

测试Python代码:

  1. from selenium import webdriver
  2. from selenium.webdriver.common.keys import Keys
  3. from time import sleep
  4. import os
  5. if 'HTTP_PROXY' in os.environ: del os.environ['HTTP_PROXY']
  6.  
  7. dr = webdriver.Firefox()
  8. file_path = 'file:///' + os.path.abspath('send_keys.html')
  9. dr.get(file_path)
  10.  
  11. #todo: copy the content of A
  12. dr.find_element_by_id('A').send_keys((Keys.CONTROL,'a'))
  13. sleep(5)
  14. dr.find_element_by_id('A').send_keys((Keys.CONTROL,'x'))
  15. sleep(5)
  16.  
  17. #todo:paste content of A to B
  18. dr.find_element_by_id('B').send_keys((Keys.CONTROL,'v'))
  19. sleep(5)
  20.  
  21. #todo:send keys to A
  22. dr.find_element_by_id('A').send_keys('I', Keys.SPACE,'Love',Keys.SPACE,'AutoTesting')
  23.  
  24. sleep(5)
  25. dr.quit()

Python脚本控制的WebDriver 常用操作 <十二> send_keys模拟按键输入的更多相关文章

  1. Python脚本控制的WebDriver 常用操作 <十> 层级定位

    下面将使用WebDriver来模拟操作一个层级定位元素的操作 测试用例场景 在实际的项目测试中,经常会有这样的需求:页面上有很多个属性基本相同的元素,现在需要具体定位到其中的一个.由于属性基本相当,所 ...

  2. Python脚本控制的WebDriver 常用操作 <十九> 获取测试对象的状态

    下面将使用webdriver来模拟测试中观察测试对象的状态的操作 测试用例场景 在web自动化测试中,我们需要获取测试对象的四种状态 是否显示.使用element.is_displayed()方法: ...

  3. Python脚本控制的WebDriver 常用操作 <十六> 处理对话框

    下面将使用webdriver来处理一些页面跳出的对话框事件 测试用例场景 页面上弹出的对话框是自动化测试经常会遇到的一个问题.前端框架的对话框经常是div形式的,下面是一些常见的对话框操作事件: 打开 ...

  4. Python脚本控制的WebDriver 常用操作 <十五> 处理Navigation Bar

    下面将使用WebDriver来模拟操作:选择一个Navigation bar的选项 测试用例场景 Navigation Bar可以看作是简单的类似于tab的导航栏.一般来说导航栏都是ul+li.先定位 ...

  5. Python脚本控制的WebDriver 常用操作 <十四> 处理button dropdown 的定位

    测试用例场景 模拟选择下拉菜单中数据的操作 Python脚本 测试用HTML代码: <html> <body> <form> <select name=&qu ...

  6. Python脚本控制的WebDriver 常用操作 <十八> 获取测试对象的css属性

    测试用例场景 当你的测试用例纠结细枝末节的时候,你就需要通过判断元素的css属性来验证你的操作是否达到了预期的效果.比如你可以通过判断页面上的标题字号以字体来验证页面的显示是否符合预期.当然,这个是强 ...

  7. Python脚本控制的WebDriver 常用操作 <十一> 操作测试对象

    下面将使用WebDriver来模拟键盘的输入操作,以及复习上节的层对象操作 测试用例场景 定位到具体的对象后,我们就可以对这个对象进行具体的操作,比如先前已经看到过的点击操作(click).一般来说, ...

  8. Python脚本控制的WebDriver 常用操作 <一> 启动浏览器

    由于本人的学习定位是基于Selenium+WebDriver+Python+FireFox+Eclipse+Pydev, 所以我的笔记也只和这方面相关. 我打算先学习基于Python脚本WebDriv ...

  9. Python脚本控制的WebDriver 常用操作 <二十> 处理表单元素

    测试用例场景 表单对象的操作比较简单,只需要记住下面几点 使用send_keys方法往多行文本框和单行文本框赋值: 使用click方法选择checkbox 使用click方法选择radio 使用cli ...

随机推荐

  1. 《Code Complete》ch.23 调试

    WHAT? 调试——发现错误的一种手段 WHY? 相对于不善于调试的程序员,善于调试的程序员只需要前者1/20的时间就可以找出问题所在 HOW? 科学的调试方法 把错误的发生稳定下来:假设-证实/证伪 ...

  2. SQL Server设置主键自增长列

    1.新建一数据表,里面有字段id,将id设为为主键 create table tb(id int,constraint pkid primary key (id)) create table tb(i ...

  3. IE条件注释

    <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> <!--[if IE]> 所有的IE可识别 <![ ...

  4. Openstack-Mitaka Ceilometer 中使用 SNMP 监控真实物理机

    Ceilometer 是 Openstack 的监控管理计费模块,我所用的版本为 Mitaka 版本.在 Ceilometer 中,可以使用 SNMP 监控服务器的实时硬件资源信息. 系统环境为 Ce ...

  5. Modifiers

    Sometimes it is useful for a function to modify the objects it gets as parameters. In that case, the ...

  6. UIBlurEffect实现模糊效果

    //使用图片初始化背景 Pattern 图案,模式 self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageN ...

  7. rman--增量备份

    1.rman增量备份级别 级别0和全库备份相同,级别1备份执行的是差异备份. 2.增量备份 使用rman实现增量备份的级别0备份 RMAN database; 使用rman实现增量备份的级别1备份 d ...

  8. JSTL的全称:JSP Standard Tag Library, jsp 标准标签库

    JSTL的全称:JSP Standard Tag Library, jsp 标准标签库 JSTL的作用     提供给Java web开发人员一个标准通过的标签函数库和EL来取代传统直接在页面上嵌入j ...

  9. 【WCF 1】WCF框架宏观了解

    导读:使用WCF框架爱开发项目也有很长一段时间了,最开始的时候,是理解的不深,所以不写博客进行总结.后来是项目赶,发现需要总结的有很多,一直没有把WCF排上日程,尤其是最近研究EF这一块,更是研究了一 ...

  10. docker1.12在cento7里的跨多主机容器网络

    docker1.12在cento7里的跨多主机容器网络