前言:
让你掌握自动化测试暂时脱离手工点点点,本章节让你掌握 Selenium 如何定位、判定、操作元素(实现业务逻辑)

一. 前期准备

  1、准备以下工具

1、Selenium下载地址:立即下载
2、通过 pip 命令下载:
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 自动化测试的更多相关文章

  1. 第一章 python+selenium自动化测试实战

    @序章 自动化测试是软件测试的主流方向之一: 教程从测试的根本需求出发,讲解如何开展自动化测试. 首先,我们要明白,自动化仅仅是满足我们某种需求的一种工具:没有必要花费时间把它全部弄懂:我们只需要学会 ...

  2. Selenium自动化测试第一天(上)

    如有任何学习问题,可以添加作者微信:lockingfree 目录 Selenium自动化测试基础 Selenium自动化测试第一天(上) Selenium自动化测试第一天(下) Selenium自动化 ...

  3. Selenium自动化测试第一天(下)

    如有任何学习问题,可以添加作者微信:lockingfree 目录 Selenium自动化测试基础 Selenium自动化测试第一天(上) Selenium自动化测试第一天(下) Selenium自动化 ...

  4. Selenium自动化测试第二天(上)

    如有任何学习问题,可以添加作者微信:lockingfree 目录 Selenium自动化测试基础 Selenium自动化测试第一天(上) Selenium自动化测试第一天(下) Selenium自动化 ...

  5. Selenium自动化测试第二天(下)

    如有任何学习问题,可以添加作者微信:lockingfree 目录 Selenium自动化测试基础 Selenium自动化测试第一天(上) Selenium自动化测试第一天(下) Selenium自动化 ...

  6. Python网络数据采集7-单元测试与Selenium自动化测试

    Python网络数据采集7-单元测试与Selenium自动化测试 单元测试 Python中使用内置库unittest可完成单元测试.只要继承unittest.TestCase类,就可以实现下面的功能. ...

  7. Python+selenium自动化测试中Windows窗口跳转方法

    Python+selenium自动化测试中Windows窗口跳转方法 #第一种方法 #获得当前窗口 nowhandle=driver.current_window_handle #打开弹窗 drive ...

  8. Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通

    Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通Selenium接口性能自动化测试基础部分:分层自动化思想Slenium介绍Selenium1.0/2.0/3.0Slenium R ...

  9. Selenium自动化测试框架入门整理

    ​​关注嘉为科技,获取运维新知 本文主要针对Selenium自动化测试框架入门整理,只涉及总体功能及框架要点介绍说明,以及使用前提技术基础要求整理说明.作为开发人员.测试人员入门参考. 本文参考:Se ...

  10. Selenium自动化测试Python一:Selenium入门

    Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介绍Selenium的入门知识以及Selenium的前置知识. 自动化测试的基础 在Selenium的课程以前,我们先回顾一下软件 ...

随机推荐

  1. robotframework实战三--自定义关键字

    在rf的实战1中,我的登录获取验证码就使用了自定义关键字,具体怎么做的,如下 1.新建文件夹 新建一个文件夹,我的MyLibrary,并且存放在site-packages下 2.编写代码 在pytho ...

  2. jquery插入第一个元素? [问题点数:20分,结帖人zsw19909001]

    jquery插入第一个元素? [问题点数:20分,结帖人zsw19909001] JavaScript code   ? 1 2 3 4 5 <div id="contain" ...

  3. Android(java)学习笔记70:TabActivity使用

    1.首先我们要知道TabActivity是结合TabHost使用的,于是我们自然而然要说明一下TabHost 所谓的TabHost是提供选项卡(Tab页)的窗口视图容器. 此对象包含两个子对象: 一个 ...

  4. 【CCPC-Wannafly Winter Camp Day4 (Div1) I】咆咆咆哮(三分+贪心)

    点此看题面 大致题意: 有\(n\)张卡牌,每张卡牌有两种用法:使场上增加一个伤害为\(a_i\)的生物,或使场上所有生物伤害增加\(b_i\).求最大总伤害. 三分 我们可以三分使用\(a_i\)的 ...

  5. 【CCPC-Wannafly Winter Camp Day4 (Div1) H】命命命运(概率DP)

    点此看题面 大致题意: 有\(6\)个人玩大富翁,共有\(n\)块地,进行\(500\)轮,已知每个人掷骰子掷出\(1\sim6\)的概率.当某人到达一块未被占领的地时,他可以占领它.求最后每个人占有 ...

  6. Python中的__name__和__main__含义详解

    1背景 在写Python代码和看Python代码时,我们常常可以看到这样的代码: ? 1 2 3 4 5 def main():     ......   if __name == "__m ...

  7. Ray-AABB交叉检测算法

      最近在解决三维问题时,需要判断线段是否与立方体交叉,这个问题可以引申为:射线是否穿过立方体AABB.   在3D游戏开发中碰撞检测普遍采用的算法是轴对齐矩形边界框(Axially Aligned ...

  8. PHP中的生成XML文件的4种方法分享

    生成如下XML串 Xml代码 <?xml version="1.0" encoding="utf-8"?> <article> < ...

  9. git(osChina上分支的使用)

    使用osChina分支的创建分为两种 1.直接在osChina上创建 需要pull否则查看git的状态是不包含改分支的; git pull <git地址/git简称> <分支名> ...

  10. iOS 多线程 之 GCD(大中枢派发)(二)

    本文接着上一篇讲.主要讲:dispatch_source. dispatch_source主要用户监听事件,可以监听如下事件 DISPATCH_SOURCE_TYPE_DATA_ADD DISPATC ...