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二叉树的实现实例
Nov 21 Python
python通过pil模块获得图片exif信息的方法
Mar 16 Python
Python实现微信公众平台自定义菜单实例
Mar 20 Python
python高手之路python处理excel文件(方法汇总)
Jan 07 Python
实例讲解Python中global语句下全局变量的值的修改
Jun 16 Python
Python正则表达式指南 推荐
Oct 09 Python
对python数据切割归并算法的实例讲解
Dec 12 Python
利用PyCharm Profile分析异步爬虫效率详解
May 08 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
Aug 02 Python
django admin 自定义替换change页面模板的方法
Aug 23 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
Oct 21 Python
python爬虫基础之urllib的使用
Dec 31 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
php下使用curl模拟用户登陆的代码
2010/09/10 PHP
解析PHP生成静态html文件的三种方法
2013/06/18 PHP
php对图像的各种处理函数代码小结
2013/07/08 PHP
codeigniter使用技巧批量插入数据实例方法分享
2013/12/31 PHP
ucenter中词语过滤原理分析
2016/07/13 PHP
基于PHP-FPM进程池探秘
2017/10/17 PHP
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
JavaScript的React框架中的JSX语法学习入门教程
2016/03/05 Javascript
JS关闭窗口时产生的事件及用法示例
2016/08/20 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
JS自动生成动态HTML验证码页面
2017/06/14 Javascript
Vue组件通信之Bus的具体使用
2017/12/28 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
[37:21]完美世界DOTA2联赛PWL S2 Inki vs Magma 第二场 11.22
2020/11/24 DOTA
python获取Linux下文件版本信息、公司名和产品名的方法
2014/10/05 Python
python实现linux下抓包并存库功能
2018/07/18 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
python计算n的阶乘的方法代码
2019/10/25 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
Spartoo葡萄牙鞋类网站:线上销售鞋履与时尚配饰
2017/01/11 全球购物
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
初中三年毕业生的自我评价分享
2014/02/14 职场文书
拉拉队口号
2014/06/16 职场文书
学校党员对照检查材料
2014/08/28 职场文书
环卫工人慰问信
2015/02/15 职场文书
签订劳动合同通知书
2015/04/16 职场文书
浅谈@Value和@Bean的执行顺序问题
2021/06/16 Java/Android