Selenium元素的常用操作方法分析


Posted in Python onAugust 10, 2018

本文实例讲述了Selenium元素的常用操作方法。分享给大家供大家参考,具体如下:

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。

在前面一篇《Selenium定位元素操作》中已经介绍了如何对元素进行定位。定位只是第一步,定位之后需要对这个元素进行操作,或单击(按钮)或输入(文本框),下面就记录一下Selenium中元素的最常用的几个方法:

点击和输入

  • clear():清除文本
  • send_keys(value):按键模拟输入
  • click():单击元素
from selenium.webdriver import Chrome()
driver = Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
driver.get('https://www.baidu.com/')
driver.find_element_by_id('kw').clear()
driver.find_element_by_id('kw').send_keys('python')
driver.find_element_by_id('su').click()

提交

  • submit()

submit()方法用于提交表单,例如,在输入框输入关键字之后的回车操作,就可以通过该方法模拟:

from selenium.webdriver import Chrome
driver = Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
driver.get('https://www.baidu.com/')
element = driver.find_element_by_id('kw')
element.send_keys('python')
element.submit()

有时候submit()可以和click()方法互换来使用,submit()同样可以提交一个按钮,但submit()的应用范围远远没有click()广

其他常用方法

  • size:返回元素的尺寸
  • text:返回元素的内容
  • get_attribute(name):返回元素属性的值
  • is_displayed():设置该元素是否用户可见
from selenium.webdriver import Chrome()
driver = Chrome('C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
driver.get('https://www.baidu.com/')
# 获取元素的尺寸
element = driver.find_element_by_id('su')
print(element.size)           # {'height': 36, 'width': 100}
# 获取元素的内容
element = driver.find_element_by_id('setf')
print(element.text)           # 把百度设为主页
# 获取元素中value属性的值
element = driver.find_element_by_id('su')
print(element.get_attribute('value')   # 百度一下
# 获取该元素是否用户可见
element = driver.find_element_by_id('su')
print(element.is_displayed())      # True

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python读写unicode文件的方法
Jul 10 Python
在Django框架中设置语言偏好的教程
Jul 27 Python
python常见字符串处理函数与用法汇总
Oct 30 Python
通过python连接Linux命令行代码实例
Feb 18 Python
Django实现列表页商品数据返回教程
Apr 03 Python
解决更改AUTH_USER_MODEL后出现的问题
May 14 Python
python安装读取grib库总结(推荐)
Jun 24 Python
python爬虫使用requests发送post请求示例详解
Aug 05 Python
Python类class参数self原理解析
Nov 19 Python
python 制作网站小说下载器
Feb 20 Python
详解Python为什么不用设计模式
Jun 24 Python
Python中with上下文管理协议的作用及用法
Mar 18 Python
Selenium定位元素操作示例
Aug 10 #Python
判断python字典中key是否存在的两种方法
Aug 10 #Python
详解python的sorted函数对字典按key排序和按value排序
Aug 10 #Python
Selenium(Python web测试工具)基本用法详解
Aug 10 #Python
Python生成器generator用法示例
Aug 10 #Python
python 字典修改键(key)的几种方法
Aug 10 #Python
详解python 注释、变量、类型
Aug 10 #Python
You might like
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
PHP 读取Postgresql中的数组
2013/04/14 PHP
PHP动态生成javascript文件的2个例子
2014/04/11 PHP
PHP防止注入攻击实例分析
2014/11/03 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
PHP单例模式实例分析【防继承,防克隆操作】
2019/05/22 PHP
基于laravel-admin 后台 列表标签背景的使用方法
2019/10/03 PHP
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
js文件Cookie存取值示例代码
2014/02/20 Javascript
2则自己编写的jQuery特效分享
2015/02/26 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
实现非常简单的js双向数据绑定
2015/11/06 Javascript
jQuery实现监控页面所有ajax请求的方法
2015/12/10 Javascript
jQuery实现背景弹性滚动的导航效果
2016/06/01 Javascript
JavaScript必知必会(三) String .的方法来自何方
2016/06/08 Javascript
jQuery获取浏览器类型和版本号的方法
2016/07/05 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
2016/07/07 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
2017/02/10 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
如何自动化部署项目?折腾服务器之旅~
2019/04/16 Javascript
python字典快速保存于读取的方法
2018/03/23 Python
Python线程池模块ThreadPoolExecutor用法分析
2018/12/28 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
使用python实现简单五子棋游戏
2019/06/18 Python
浅谈Python 递归算法指归
2019/08/22 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
一款利用html5和css3实现的3D立方体旋转效果教程
2016/04/26 HTML / CSS
GNC健安喜官方海外旗舰店:美国著名保健品牌
2017/01/04 全球购物
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
2016/04/28 面试题
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
气象学专业个人求职信
2014/04/22 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers