你的第一个自动化测试:Selenium 自动化测试
一. 前期准备
1、准备以下工具
pip install selenium
3、Firefox 驱动下载地址:立即下载
把下载的Geckodriver放入Python安装路径下的Scripts文件夹内
\python36\Scripts
4、目标测试地址:
https://www.cnblogs.com
https://www.baidu.com
备注:以上地址仅作为演示使用
二. 测试开始
1、Firefox 启动:
from selenium import webdriver
driver = webdriver.Firefox() # 即可启动 Firefox 浏览器
2、打开网址:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('https://www.baidu.com/')
# 打开百度首页
3、元素定位:
'''
Selenium 作为一款自动化测试工具包,提供了多种多样的元素定位方式,下边我们讲几种定位的方式 通过元素 ID 来定位
通过元素 Class 来定位
通过元素 name 来定位
通过元素 xpath 来定位
'''
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('https://www.baidu.com/')
driver.find_element_by_id("kw") # 这是通过元素 ID 来定位
driver.find_element_by_class_name("s_ipt") # 这是通过元素 Class 来定位
driver.find_element_by_name("wd") # 这是通过元素 name 来定位
driver.find_element_by_xpath("//*[@id="kw"]") # 这是通过元素 xpath 来定位 输出:
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="d053531b-e9a8-4729-8c0b-91aae35a7203", element="5616f958-9fa8-4d09-a6ce-243e94acd1ea")> # 这就是因为他们定位的方式不同,但对象是一样的,也就是为什么打印出的结果都是 ...243e94acd1ea]
打印定位元素明细:
>>> print driver.find_element_by_id("kw")
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="d053531b-e9a8-4729-8c0b-91aae35a7203", element="5616f958-9fa8-4d09-a6ce-243e94acd1ea")> >>> driver.find_element_by_class_name("s_ipt")
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="d053531b-e9a8-4729-8c0b-91aae35a7203", element="5616f958-9fa8-4d09-a6ce-243e94acd1ea")> >>> driver.find_element_by_name("wd")
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="d053531b-e9a8-4729-8c0b-91aae35a7203", element="5616f958-9fa8-4d09-a6ce-243e94acd1ea")> >>> driver.find_element_by_xpath('//*[@id="kw"]')
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="d053531b-e9a8-4729-8c0b-91aae35a7203", element="5616f958-9fa8-4d09-a6ce-243e94acd1ea")> <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="d053531b-e9a8-4729-8c0b-91aae35a7203", element="5616f958-9fa8-4d09-a6ce-243e94acd1ea")>
详细代码
4、判断元素是否存在:
# 通过 Python 特性检查元素是否存在
def test():
try:
driver.find_element_by_id("kw")
return True
except:
return False
# 存在返回 True or False # ============= if driver.find_element_by_id("kw"):
print("True")
else:
print("False") # 存在返回 True
5、元素的操作:
# == 入门常用 ==
# 操作单击按钮元素
driver.find_element_by_id("kw").check()
# 填写文本内容
driver.find_element_by_id("kw").send_keys("Demo")
# 清除文本内容
driver.find_element_by_id("kw").clear()
# 提交表单内容
driver.find_element_by_id("kw").submit()
三. 完整代码
1、用户登录
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://127.0.0.1/login")
driver.find_element_by_id("name").clear()
driver.find_element_by_id("name").send_keys("你的用户名")
driver.find_element_by_id("passwd").clear()
driver.find_element_by_id("passwd").send_keys("你的密码")
driver.find_element_by_id("login").click()
driver.close()
2、检查登录
xxxxxxxxxxxxxxxx
【还没更新完。。。。。。】
你的第一个自动化测试:Selenium 自动化测试的更多相关文章
- 第一章 python+selenium自动化测试实战
@序章 自动化测试是软件测试的主流方向之一: 教程从测试的根本需求出发,讲解如何开展自动化测试. 首先,我们要明白,自动化仅仅是满足我们某种需求的一种工具:没有必要花费时间把它全部弄懂:我们只需要学会 ...
- Selenium自动化测试第一天(上)
如有任何学习问题,可以添加作者微信:lockingfree 目录 Selenium自动化测试基础 Selenium自动化测试第一天(上) Selenium自动化测试第一天(下) Selenium自动化 ...
- Selenium自动化测试第一天(下)
如有任何学习问题,可以添加作者微信:lockingfree 目录 Selenium自动化测试基础 Selenium自动化测试第一天(上) Selenium自动化测试第一天(下) Selenium自动化 ...
- Selenium自动化测试第二天(上)
如有任何学习问题,可以添加作者微信:lockingfree 目录 Selenium自动化测试基础 Selenium自动化测试第一天(上) Selenium自动化测试第一天(下) Selenium自动化 ...
- Selenium自动化测试第二天(下)
如有任何学习问题,可以添加作者微信:lockingfree 目录 Selenium自动化测试基础 Selenium自动化测试第一天(上) Selenium自动化测试第一天(下) Selenium自动化 ...
- Python网络数据采集7-单元测试与Selenium自动化测试
Python网络数据采集7-单元测试与Selenium自动化测试 单元测试 Python中使用内置库unittest可完成单元测试.只要继承unittest.TestCase类,就可以实现下面的功能. ...
- Python+selenium自动化测试中Windows窗口跳转方法
Python+selenium自动化测试中Windows窗口跳转方法 #第一种方法 #获得当前窗口 nowhandle=driver.current_window_handle #打开弹窗 drive ...
- Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通
Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通Selenium接口性能自动化测试基础部分:分层自动化思想Slenium介绍Selenium1.0/2.0/3.0Slenium R ...
- Selenium自动化测试框架入门整理
关注嘉为科技,获取运维新知 本文主要针对Selenium自动化测试框架入门整理,只涉及总体功能及框架要点介绍说明,以及使用前提技术基础要求整理说明.作为开发人员.测试人员入门参考. 本文参考:Se ...
- Selenium自动化测试Python一:Selenium入门
Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介绍Selenium的入门知识以及Selenium的前置知识. 自动化测试的基础 在Selenium的课程以前,我们先回顾一下软件 ...
随机推荐
- TypeScript学习-TypeScript环境配置
http://blog.csdn.net/shi_weihappy/article/details/49332091
- PRmakefile文件
Ubuntu下的makefile: # /******************************************************************************* ...
- java设计模式——迭代器模式
一. 定义与类型 定义:提供一种方法,顺序访问一个集合对象中的各个元素,而又不暴露该对象的内部表示 类型:行为型. 二. 使用场景 (1) 访问一个集合对象的内容而无需暴露它的内部表示 (2) 为遍 ...
- CXF报错[1 counts of IllegalAnnotationExceptions]and[Two classes have the same XML type name]and[Use @XmlType.name and @XmlType.namespace to assign different names to them]
启动时CXF报错如下: Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalA ...
- 【转】javascript中not defined、undefined、null以及NaN的区别
原文链接(点击跳转) 第一:not defined 演示代码: <span style="font-size:12px;"><span style=" ...
- 提高篇(1):RMQ问题与ST表
RMQ是英文Range Minimum/Maximum Query的缩写,是询问某个区间内的最值,这里讲一种解法:ST算法 ST算法通常用在要多次(10^6级别)询问区间最值的问题中,相比于线段树,它 ...
- docker官方仓库下载镜像
官方仓库镜像地址:https://hub.docker.com/search/ 以下载mysql为例 进入到详情页后我们看到有很多Tags 我们选择5.7.25版本进行下载 # docker pull ...
- rsync + git发布项目
前言: 更新项目的时候需要将更改的文件一一上传,这样比较麻烦,用版本控制器git +rsync 搭建一个发布服务器,以后发布文件非常方便 首先说下,我这边的更新流程,本地写完之后,git push 到 ...
- LeetCode961 重复 N 次的元素
问题: 重复 N 次的元素 在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次. 返回重复了 N 次的那个元素. 示例 1: 输入:[1,2,3,3] 输出:3 示例 ...
- java 反射bean
描述:新bean和旧bean拥有相同的字段属性.将旧bean的属性值,赋给新bean. Java代码如下: /** * 反射Bean * @param bean 反射的对象 * @param newB ...