Python脚本控制的WebDriver 常用操作 <十二> send_keys模拟按键输入

时间:2022-09-02 13:56:08

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

测试用例场景


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

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

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

Python脚本


测试HTML代码:

    <html>
        <head>
            <meta http-equiv="content-type" content="text/html;charset=utf-8" />
            <title>send keys</title>
            <script type="text/javascript" async="" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
            <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" />
        </head>
        <body>
            <h3>send keys</h3>
            <div class="row-fluid">
            <div class="span3">
                <div class="well">
                    <label>A</label>
                    <textarea rows="10", cols="10" id="A">I think watir-webdriver is better than selenium-webdriver</textarea>
                </div>
            </div>
            <div class="span3">
                <div class="well">
                    <label>B</label>
                    <textarea rows="10", cols="10" id="B"></textarea>
                </div>
            </div>
            </div>
        </body>
     <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
    </html>

测试Python代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
import os
if 'HTTP_PROXY' in os.environ: del os.environ['HTTP_PROXY']

dr = webdriver.Firefox()
file_path = 'file:///' + os.path.abspath('send_keys.html')
dr.get(file_path)

#todo: copy the content of A
dr.find_element_by_id('A').send_keys((Keys.CONTROL,'a'))
sleep(5)
dr.find_element_by_id('A').send_keys((Keys.CONTROL,'x'))
sleep(5)

#todo:paste content of A to B
dr.find_element_by_id('B').send_keys((Keys.CONTROL,'v'))
sleep(5)

#todo:send keys to A
dr.find_element_by_id('A').send_keys('I', Keys.SPACE,'Love',Keys.SPACE,'AutoTesting')

sleep(5)
dr.quit()

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

  1. Python脚本控制的WebDriver 常用操作 &lt&semi;十&gt&semi; 层级定位

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

  2. Python脚本控制的WebDriver 常用操作 &lt&semi;十九&gt&semi; 获取测试对象的状态

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

  3. Python脚本控制的WebDriver 常用操作 &lt&semi;十六&gt&semi; 处理对话框

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

  4. Python脚本控制的WebDriver 常用操作 &lt&semi;十五&gt&semi; 处理Navigation Bar

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

  5. Python脚本控制的WebDriver 常用操作 &lt&semi;十四&gt&semi; 处理button dropdown 的定位

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

  6. Python脚本控制的WebDriver 常用操作 &lt&semi;十八&gt&semi; 获取测试对象的css属性

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

  7. Python脚本控制的WebDriver 常用操作 &lt&semi;十一&gt&semi; 操作测试对象

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

  8. Python脚本控制的WebDriver 常用操作 &lt&semi;一&gt&semi; 启动浏览器

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

  9. Python脚本控制的WebDriver 常用操作 &lt&semi;二十&gt&semi; 处理表单元素

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

随机推荐

  1. html&sol;css小练习2

    效果图:

  2. &lbrack;C&num;进阶系列&rsqb;专题一:深入解析深拷贝和浅拷贝

    一.前言 这个星期参加了一个面试,面试中问到深浅拷贝的区别,然后我就简单了讲述了它们的之间的区别,然后面试官又继续问,如何实现一个深拷贝呢?当时只回答回答了一种方式,就是使用反射,然后面试官提示还可以 ...

  3. Spetember 5th 2016 Week 37th Monday

    No matter how far you may fly, never forget where you come from. 无论你能飞多远,都别忘了你来自何方. Stay true to you ...

  4. table&lowbar;横向合并&lowbar;纵向合并

    colspan是横向合并; rowspan是纵向合并; <caption></caption>表格标题(自动居中)

  5. el 和 fmt 常用

    EL表达式入门 转自 http://blog.chinaunix.net/uid-9789791-id-1997374.html 隐含对象: pageContext: pageContext对象 pa ...

  6. NWR协议

    NWR是一种在分布式存储系统中用于控制一致性级别的一种策略.在Amazon的Dynamo云存储系统中,就应用NWR来控制一致性. 让我们先来看看这三个字母的含义:N:在分布式存储系统中,有多少份备份数 ...

  7. CSS 居中大全【转】

    我看最近微博流行 CSS 居中技术,老外码农争相写相关的文章,一篇赛一篇的长啊,我把几篇归纳总结了一下,算是笔记. 孔乙己曾说:“茴香豆的回字有四种写法”,万一哪天有个面试官问你:“居中一共有几种写法 ...

  8. NSString的常用方法

    创建一个新字符串并将其设置为 path 指定的文件的内容,使用字符编码enc,在error上返回错误 + (id)stringWithContentsOfURL:(NSURL *)url encodi ...

  9. 一个仿3D的平面游戏页面

    package com.totoo.TouhouMassLight;import android.os.Bundle;import android.view.MotionEvent;import an ...

  10. eclemma怎么安装 eclemma的安装与简单使用图文教程&lpar;附下载&rpar;

    来自于:https://www.jb51.net/softjc/628026.html 一. 安装 有两种安装方法 1. 下载安装(推荐) 地址: http://sourceforge.net/pro ...