from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains   #鼠标操作
class BasePage():'''BasePage封装所有界面都公用的方法。例如driver,find_element等''''''实例化BasePage类时,事先执行的__init__方法,该方法需要传递参数'''def __init__(self,driver):self.driver = driver# 进入网址def get(self,url):self.driver.get(url)#元素定位,替代八大定位def get_element(self,*locator):return self.driver.find_element(*locator)#点击def left_click(self,*locator):ActionChains(self.driver).double_click(self.get_element(*locator)).perform()#输入def send_text(self,text,*locator):self.driver.find_element(*locator).send_keys(text)#清除def clear_text(self,*locator):self.driver.find_element(*locator).clear()#表单切换def switch_iframe(self,*locator):self.driver.switch_to.frame(self.driver.find_element(*locator))#窗口切换def switch_window(self,n):self.driver.switch_to.window(self.driver.window_handles[n])
from selenium.webdriver.common.by import By
from basepage.bases import BasePage
class BaiDu(BasePage):def __init__(self,driver):BasePage.__init__(self,driver)def BaiDuurl(self,url):self.get(url)def BaiDussk(self,text):self.send_text(text,By.ID,"kw")def BaiDudj(self):self.left_click(By.ID,"su")def TaoBaodj(self):self.left_click(By.XPATH, ".//*[@id='1']/h3/a[1]")
from selenium.webdriver.common.by import By
from basepage.bases import BasePage
class TaoBao(BasePage):def __init__(self,driver):BasePage.__init__(self,driver)def Tiao(self, n):self.switch_window(1)def TaoBaoqdl(self):self.left_click(By.XPATH,"html/body/div[4]/div[2]/div[2]/div/div[2]/div[1]/a[1]")
from selenium.webdriver.common.by import By
from basepage.bases import BasePage
class TaoBaogwc(BasePage):def __init__(self, driver):BasePage.__init__(self, driver)def Tiao3(self, n):self.switch_window(3)def TaoBaosx(self):self.left_click(By.XPATH,".//*[@id='J_DetailMeta']/div[1]/div[1]/div/div[4]/div/div/dl[1]/dd/ul/li[1]/a/span")# def TaoBaojg(self):#     self.left_click(By.XPATH,".//*[@id='J_Amount']/span[1]/input")def TaoBaoqd(self):self.left_click(By.XPATH,".//*[@id='J_LinkBasket']")
from selenium.webdriver.common.by import By
from basepage.bases import BasePage
class Taojm(BasePage):def __init__(self,driver):BasePage.__init__(self,driver)def Tiao2(self,n):self.switch_window(2)def ErWeiMa(self):self.left_click(By.XPATH, ".//*[@id='login']/div[1]/i")def TaoBaossk(self, text):self.send_text(text, By.ID, "q")def TaoBaodj(self):self.left_click(By.XPATH, ".//*[@id='J_TSearchForm']/div[1]/button")
from selenium.webdriver.common.by import By
from basepage.bases import BasePage
class TaoBaosx(BasePage):def __init__(self,driver):BasePage.__init__(self,driver)def TaoBaopp(self):self.left_click(By.XPATH,".//*[@id='J_NavCommonRowItems_0']/a[3]/span[2]")def TaoBaoj1(self,text):self.send_text(text,By.XPATH, ".//*[@id='J_relative']/div[1]/div/div[1]/div[1]/div/ul/li[1]/input")def TaoBaoj2(self,text):self.send_text(text,By.XPATH, ".//*[@id='J_relative']/div[1]/div/div[1]/div[1]/div/ul/li[3]/input")def TaoBaoqd(self):self.left_click(By.XPATH ,".//*[@id='J_relative']/div[1]/div/div[1]/div[1]/div/ul/li[4]/button")def TaoBaoxz(self):self.left_click(By.XPATH,".//*[@id='J_Itemlist_Pic_567829723928']")
import unittest
from selenium import webdriver
from basedemo.baidudemo import BaiDu
from basedemo.taoabaodemo import TaoBao
from basedemo.taobaogwc import TaoBaogwc
from basedemo.taobaosdemo import Taojm
from basedemo.taobaosxdemo import TaoBaosximport time
class TestTaoBao(unittest.TestCase):@classmethoddef setUpClass(cls) -> None:cls.driver=webdriver.Firefox()cls.driver.maximize_window()cls.driver.implicitly_wait(22)def test1(self):url = "https://www.baidu.com"bd = BaiDu(self.driver)bd.BaiDuurl(url)bd.BaiDussk("淘宝")bd.BaiDudj()bd.TaoBaodj()time.sleep(2)def test2(self):tb=TaoBao(self.driver)tb.Tiao(1)tb.TaoBaoqdl()def test3(self):jm=Taojm(self.driver)jm.Tiao2(2)jm.ErWeiMa()jm.TaoBaossk("迪迦奥特曼")jm.TaoBaodj()def test4(self):sx = TaoBaosx(self.driver)sx.TaoBaopp()sx.TaoBaoj1(10)sx.TaoBaoj2(100)time.sleep(3)sx.TaoBaoqd()sx.TaoBaoxz()def test5(self):gwc = TaoBaogwc(self.driver)gwc.Tiao3(3)gwc.TaoBaosx()# gwc.TaoBaojg()gwc.TaoBaoqd()@classmethoddef tearDownClass(cls) -> None:pass
if __name__ == '__main__':unittest.main()

使用Po模型实现购物车相关推荐

  1. Python+Selenium+PO模型实现自动化测试

    一. PO模型介绍 在自动化中,Selenium自动化测试中有一个名字经常被提及PageObject(思想与面向对象的特征相 同),通常PO模型可以大大提高测试用例的维护效率 PO模型又叫PO设计模式 ...

  2. Selenium+Python ---- 免登录、等待、unittest单元测试框架、PO模型

    1.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...

  3. Appium+Python之PO模型(Page object Model)

    思考:我们进行自动化测试时,如果把代码都写在一个脚本中,代码的可读性会变差,且后期代码维护也麻烦,最好的想法就是测试对象和测试用例可以分离,可以很快定位问题,代码可读性高,也比较容易理解.这里推荐大家 ...

  4. Selenium基于Python web自动化测试框架 —— PO模型

    目录 1.前言: 2.PO模型的概念和理解: 3.PO模型的目录结构: 4.PO代码示例: 5.总结 6.重点:配套学习资料和视频教学 1.前言: 关于selenium测试框架首先想到的就是PO模型, ...

  5. po模型+unittest测试

    po模型 一.PO模型介绍 二.PO的核心 三.非op模型实现 四.op模型实现 1.包含内容 2.代码实现(多页面) 一.PO模型介绍 在自动化中,Selenium自动化测试中有一个名字经常被提及P ...

  6. selenium自动化之PO模型

    目录 一.selenium: 1.定位: 2.加载url 3.输入 4.点击 5.清除 6.获取文本内容 7.获取属性 8.切换/窗口切换 8.1Frame切换 8.2窗口切换: 9.等待 二.log ...

  7. PO模型(设计模式)

    文章目录 什么是PO模型 PO优点: PO的核心 实例 什么是PO模型 PO模型全称:Page Object(思想与面向对象的特征相同),也叫PO设计模式.他的出现主要是为了解决自动化测试中代码量增加 ...

  8. 使用po模型进行自动化测试

    编写公用的父类方法 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionC ...

  9. Python+Selenium WebUI自动化框架 -- 实现特殊PO模型

    前言: 设计执行格式,封装PO模型工厂,实现PO模型脱离代码,一套代码执行所有项目的UI自动化,让UI自动化框架脱离高成本.低效率时代,将用例的重用性贯彻到极致,让烦人的PO模型变得无所谓,让一个测试 ...

最新文章

  1. 作为管理者的你,如何用人?一点建议给你
  2. Pandas的学习(3.DataFrame的创建方法和三种索引方法(iloc、loc、values)以及切片)
  3. 用java解决约瑟夫循环问题_Java采用循环链表结构求解约瑟夫问题
  4. Android自定义View之上拉、下拉列表 头部元素跟随 缩放、平移效果的实现
  5. CISCO、JUNIPER网络技术训练中心ITAA等级四(RS)学习计划蓝图(version 1.0)
  6. STM32 JLINK接口定义 JTAG/SWD
  7. linux addr2line 用法,addr2line的用法
  8. matlab2014如何获得hostid,关于如何修改hostid的问题
  9. 告别飘云!飘云QQ核心技术人员正式声明退出开发[含全文]
  10. Python基础入门:函数--阿里云天池
  11. 从《三体》中的“降维打击”看网络世界,论维度升级的方法与实践
  12. 什么是四种七和弦 和三种转位
  13. PCB设计规则总结和原因分析
  14. 【Gamma】Scrum Meeting 1 与助教谈话
  15. 下载ZIP压缩包(压缩多个文件)
  16. 2020年第十七届中国研究生数学建模竞赛C题 面向康复工程的脑信号分析和判别建模
  17. IEEE 802.15.4的信道接入机制二信标网络中的CSMA-CA算法
  18. Labview移位寄存器理解(例子说明)
  19. PTA 程序设计天梯赛【day2】
  20. Unity 技能范围指示器

热门文章

  1. ansible剧本规范目录结构
  2. Python 中文分词 jieba(小白进)
  3. 网页打开android app,android 网页中打开 app指定页面
  4. Follow My Heart
  5. 职高对口计算机应用资料,2020年湖南省职高对口计算机应用综合试卷(三校联考)...
  6. MBP本,完美多分区装双系统图文教程,多分区而不影响苹果系统GUID分区表,图文教程...
  7. JSBridge 原理
  8. Java调用 新浪微博API 接口发微博,逐项讲解,绝对清晰
  9. 12.Python文件操作与字符编码
  10. 爬虫案例:手把手教你爬取图片