前言:
让你掌握自动化测试暂时脱离手工点点点,本章节让你掌握 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. 安卓装tensorflow

    1.https://blog.csdn.net/masa_fish/article/details/54096996 tensorflow有很多中安装方式,但你要想和android结合,就只能采用源码 ...

  2. tcp 的编程例子

    https://www.cnblogs.com/ylllove/p/6852125.html

  3. failed to bind pixmap to texture

    问题描述:我用的是Ubuntue的操作系统,终端突然挂了.我重启了一下电脑,就进不去系统了. 日志信息:  failed to bind pixmap to texture 原因: 界面管理工具坏了, ...

  4. N76E003---输入捕获

    输入捕获 根据芯片手册,定时器2可以作为输入捕获使用,设置非常简单,官方也提供了宏给我们使用 void Time2_cap_init(void) { /******* 输入捕获CF设置 ******* ...

  5. 合格PHP工程师的知识结构 (转载)

    工作有些年头了,从学校开始自学ASP,偶然因为PHP一个功能爱上它(ASP上传代码要写好多,PHP基本几行就搞定了),从此走上了 ”拍黄片“ 之路.结合这几年的工作经验,说说我对PHP工程师知识结构的 ...

  6. Spring/Spring boot中静态变量赋值

    情形1:静态变量为自动注入的对象 解决方案:设置两个变量,非静态变量使用@resource注入Bean,然后使用@PostConstruct在Spring初始化Bean成功后为静态变量赋值 @Comp ...

  7. js 图片库 改进版

    平稳退化 js与html标记分离? 如果有两个函数:firstFunction和secondFunction,如果想让它们俩都在页面加载时得到执行,可以调用函数addLoadEvent,只有一个参数, ...

  8. Onboard,迷人的引导页样式制作库

    简介 Onboard主要用于引导页制作,源码写的相当规范,值得参考. 项目主页: https://github.com/mamaral/Onboard 实例下载: https://github.com ...

  9. ES6初识-(冲突)数据结构

    Set的用法 元素不能重复--唯一性 WeakSet key值只能是对象 没有clear属性 Map let map=new Map([['a',123],['b',456]]);; WeakMap ...

  10. 【转载】Callable、FutureTask中阻塞超时返回的坑点

    本文转载自:http://www.cnblogs.com/starcrm/p/5010863.html 案例1: package com.net.thread.future; import java. ...