1.创建Page的基类(base.py)

import time

class BasePage:

"""

基础Page层,封装一些常用方法

"""

def __init__(self, driver):

self.driver = driver

# 打开页面

def open(self, url=None):

if url is None:

self.driver.get(self.url)

else:

self.driver.get(url)

# id定位

def by_id(self, id_):

return self.driver.find_element_by_id(id_)

# name定位

def by_name(self, name):

return self.driver.find_element_by_name(name)

# class定位

def by_class(self, class_name):

return self.driver.find_element_by_class_name(class_name)

# XPath定位

def by_xpath(self, xpath):

return self.driver.find_element_by_xpath(xpath)

# CSS定位

def by_css(self, css):

return self.driver.find_element_by_css_selector(css)

# 获取title

def get_title(self):

return self.driver.title

# 获取页面text,仅使用XPath定位

def get_text(self, xpath):

return self.by_xpath(xpath).text

# 执行JavaScript脚本

def js(self, script):

self.driver.execute_script(script)

2.百度搜索方法封装在一起(baidu_page.py)

from Page_Object.base import BasePage

class BaiduPage(BasePage):

"""百度Page层,百度页面封装操作到的元素"""

url = "https://www.baidu.com"

def search_input(self, search_key):

self.driver.find_element_by_id("kw").send_keys(search_key)

def search_button(self):

self.driver.find_element_by_id("su").click()

3.百度搜索测试用例封装在一起(test_baidu.py)

import unittest

from time import sleep

from selenium import webdriver

from Page_Object.baidu_page import BaiduPage

class TestBaidu(unittest.TestCase):

@classmethod

def setUpClass(cls):

cls.driver = webdriver.Chrome()

def test_baidu_search_case1(self):

page = BaiduPage(self.driver)

page.open()

page.search_input("selenium")

page.search_button()

sleep(2)

self.assertEqual(page.get_title(), "selenium_百度搜索")

def test_baidu_search_case2(self):

page = BaiduPage(self.driver)

page.open()

page.search_input("unittest")

page.search_button()

sleep(2)

self.assertEqual(page.get_title(), "unittest_百度搜索")

def test_baidu_search_case3(self):

page = BaiduPage(self.driver)

page.open()

page.search_input("page object")

page.search_button()

sleep(2)

self.assertEqual(page.get_title(), "page object_百度搜索")

@classmethod

def tearDownClass(cls):

cls.driver.quit()

if __name__ == '__main':

unittest.main(verbosity=2)

测试结果如下:

标签:search,虫师,name,Python,self,Object,driver,page,def

来源: https://www.cnblogs.com/kite123/p/11572813.html

python自动化测试实战 虫师_Page Object 1 百度搜索实例 (虫师《selenium3自动化测试实战--基于Python语言笔记40》)...相关推荐

  1. python商业分析_科研进阶 | 纽约大学 | 商业分析、量化金融:基于Python的商业分析工具...

    科研进阶 | 纽约大学 | 商业分析.量化金融:基于Python的商业分析工具(8.22开课)​mp.weixin.qq.com 课题名称 = 基于Python的商业分析工具 = 项目背景 数据分析为 ...

  2. python中文相似度_python 人脸对比--百度API人脸相似度识别(超简单)-Go语言中文社区...

    说明:这篇是写使用百度人脸识别API进行人脸相似度识别对比,如 给两个人物照片,判断是否是同一个人.简单的4步完成. 1,获取百度人脸识别API的API Key和Secret Key.(10分钟内完成 ...

  3. python css和xpath_Selenium系列教程(四)css、xpath定位(基于 Python)

    #!/usr/bin/env python importtimefrom selenium importwebdriver driver=webdriver.Chrome() driver.get(& ...

  4. python网络数据采集 第三版_(数据科学学习手札31)基于Python的网络数据采集(初级篇)...

    一.简介 在实际的业务中,我们手头的数据往往难以满足需求,这时我们就需要利用互联网上的资源来获取更多的补充数据,但是很多情况下,有价值的数据往往是没有提供源文件的直接下载渠道的(即所谓的API),这时 ...

  5. python用二维码共享文档_[源码和文档分享]基于Python的QR二维码的生成与识别程序...

    摘 要 进入二十一世纪之后,高新技术产业得到了极其迅速的发展.计算机.互联网.物联网.云计算等领域的发展,使得整个社会的信息化程度极大提高.随着技术的不断成熟,目前的一维条形码已逐渐向二维码过渡.本课 ...

  6. python海量数据分析师_数据分析师真的月入过万吗?(基于Python的招聘数据分析全流程实操)...

    0 前言 作为一名数据分析小白,经过一轮融汇贯穿学习后,也迫不及待想做一份数据分析报告,于是选取了现阶段最感兴趣的数据分析相关岗位招聘信息进行一波数据分析. 1 理解问题确定分析的目的和方向 因为目前 ...

  7. python爬虫的一次尝试——华北电力大学图书馆读者荐购系统:基于python爬虫的web数据爬取

    华北电力大学图书馆读者荐购系统数据爬取 前言 本章工具 网页分析 1.荐购数据 2.书目具体信息 代码部分 1. 荐购数据爬取 2. 完整书目信息爬取 前言 本学期数据仓库与数据挖掘课程大作业是编程实 ...

  8. python优秀源码新闻系统_[内附完整源码和文档] 基于python的新闻检索系统

    1 系统介绍 1.1 系统需求 新闻检索系统:定向采集不少于 4 个中文社会新闻网站或频道,实现这些网站新闻信息及评论信息的自动爬取.抽取.索引和检索.本项目未使用 lucene,Goose 等成熟开 ...

  9. 计算机Python项目(毕设课设)之含文档+PPT+源码等]精品基于Python实现的大学校园短视频社交软件系统-微信小程序

    管理员:首页.个人中心.用户管理.视频分类管理.短视频信息管理.交流论坛.系统管理等功能 小程序:首页.公告信息.交流论坛.我的等功能 系统功能完整,适合作为毕业设计.课程设计.数据库大作业. 下面是 ...

  10. python3网络爬虫开发实战pdf 崔庆才 百度网盘分享

    python3网络爬虫开发实战pdf 崔庆才 百度网盘分享 介绍了如何利用Python 3开发网络爬虫,环境配置和基础知识,然后讨论了urllib.requests.正则表达式.Beautiful S ...

最新文章

  1. ubuntu下firefox中,直接在网页上安装程序的方法
  2. python3 练习题100例 (二十二)输入两个字符串,输出两个字符串集合的并集
  3. linux mysql库看不见,linux下Mysql找不到mysqlclient库!谢谢大家
  4. tensorflow 之 tf.reshape 之 -1
  5. python量化投资培训清华大学深研院_GitHub - CatsJuice/quantitative-investment-learning: 使用Python进行量化投资的学习报告...
  6. 利用android studio 生成 JNI需要的动态库so文件
  7. 超1亿人选择朋友圈三天可见,背后的原因值得深思
  8. 完整的Android 新浪微博api调用DEMO
  9. 数据结构(十三)树的遍历
  10. [Remoting专题系列] 八:元数据
  11. 56. Yii Modules
  12. [推荐]13款js编辑器大全
  13. 【SVPWM】SVPWM算法推导及其Simulink仿真(二)
  14. Java 生成随机数并进行查找
  15. 获取两个指定数之间的随机数(万能公式)
  16. 数据库语言,转载自:红黑联盟
  17. <个人学习记录>斑点检测
  18. 百度地图定位不准的问题
  19. 透明加密支持linux吗,IP-guard文档透明加密软件|文档防泄密|数据加密|Linux系统加密|Mac苹果系统文档加密...
  20. vue props 属性值接受多个类型 _@jie

热门文章

  1. 一道简单的题学到的东西
  2. 度量两个概率分布差异性/距离的指标总结_KL 散度(相对熵)交叉熵 JS散度 Wasserstein-1距离 Earth-Mover (EM)distance
  3. 结构光相移法-多频外差原理+实践(上)
  4. mysql 数据库授权
  5. JavaScript实现模糊推荐的input框(类似百度搜索框)
  6. 【LeetCode】64. Minimum Path Sum
  7. CURL模拟访问网页
  8. python怎样安装wordcloud(词云)文件
  9. Python利用shelve模块设计简单数据库程序
  10. 【LeetCode】【refine 3】题号:*3. 无重复字符的最长子串