前言:
让你掌握自动化测试暂时脱离手工点点点,本章节让你掌握 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. mysql5.6之前需要账号的安全加固

    mysql5.6之前需要账号的安全加固 从5.7开始就不需要了. delete from mysql.user where user!='root' or host='localhost'; flus ...

  2. D. Bicycle Race_几何

    D. Bicycle Race time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  3. 从Java官网下载JDK1.6等低版本JDK

    今天在浏览Java官网的时候发现旧版本(1.8之前)的JDK安装包下载地址没有在下载页面明显的提供出来.个人通过在官网查看,发现oracle官方将旧版本的JDK全都放在Java Archive模块中了 ...

  4. P3901 【数列找不同】

    这个题我们可以使用树状数组做 啥? 树状数组? 那个不是维护前缀和的东西吗? 各位看官,让我慢慢道来. 首先我们可以想到,对于一个询问$ [l,r] \(,只有\)[1,r]$中的数可能对这个询问有影 ...

  5. NVIDIA CUDA Library Documentation

    http://developer.download.nvidia.com/compute/cuda/4_1/rel/toolkit/docs/online/index.html 英伟达CUDA库说明文 ...

  6. 曲率(Curvature)

    原文链接 几何体的曲率对于不同的对象有不同的定义.首先来看最简单的平面曲线. 首先把曲线分成无穷小的小段,每一段看作某个圆的一小段圆弧.这个圆叫做“密切圆”(Osculating Circle).由于 ...

  7. 一篇RxJava友好的文章(一)

    转载请标明出处: http://blog.csdn.net/forezp/article/details/52886700 本文出自方志朋的博客 Rxjava在目前的开发中已经是如火如荼,非常的流行, ...

  8. cursor 在某一操作之前打开 fetch cursorname into var1

    工作中遇到这样一个问题,在一个存储过程中,我想让一个游标在某一操作之前打开,说白了操作会影响我游标中已定义好的数据,这里我们用到游标的第二种用法,代码如下 cursor c_relation is s ...

  9. java mysql多次事务 模拟依据汇率转账,并存储转账信息 分层完成 dao层 service 层 client层 连接池使用C3p0 写入库使用DBUtils

    Jar包使用,及层的划分 c3p0-config.xml <?xml version="1.0" encoding="UTF-8"?> <c3 ...

  10. 如何将一个div水平垂直居中

    方案一: div绝对定位水平垂直居中[margin:auto实现绝对定位元素的居中], 兼容性:,IE7及之前版本不支持 div{ width: 200px; height: 200px; backg ...