坚持为自己每月写1篇笔记

Retreat Hell!
We Just Got Here.

你的第一个自动化测试:Selenium 自动化测试

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

 【还没更新完。。。。。。】

posted @ 2018-07-09 14:40  l||||||l  阅读(1103)  评论(0编辑  收藏  举报