使用Po模型实现购物车
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模型实现购物车相关推荐
- Python+Selenium+PO模型实现自动化测试
一. PO模型介绍 在自动化中,Selenium自动化测试中有一个名字经常被提及PageObject(思想与面向对象的特征相 同),通常PO模型可以大大提高测试用例的维护效率 PO模型又叫PO设计模式 ...
- Selenium+Python ---- 免登录、等待、unittest单元测试框架、PO模型
1.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...
- Appium+Python之PO模型(Page object Model)
思考:我们进行自动化测试时,如果把代码都写在一个脚本中,代码的可读性会变差,且后期代码维护也麻烦,最好的想法就是测试对象和测试用例可以分离,可以很快定位问题,代码可读性高,也比较容易理解.这里推荐大家 ...
- Selenium基于Python web自动化测试框架 —— PO模型
目录 1.前言: 2.PO模型的概念和理解: 3.PO模型的目录结构: 4.PO代码示例: 5.总结 6.重点:配套学习资料和视频教学 1.前言: 关于selenium测试框架首先想到的就是PO模型, ...
- po模型+unittest测试
po模型 一.PO模型介绍 二.PO的核心 三.非op模型实现 四.op模型实现 1.包含内容 2.代码实现(多页面) 一.PO模型介绍 在自动化中,Selenium自动化测试中有一个名字经常被提及P ...
- selenium自动化之PO模型
目录 一.selenium: 1.定位: 2.加载url 3.输入 4.点击 5.清除 6.获取文本内容 7.获取属性 8.切换/窗口切换 8.1Frame切换 8.2窗口切换: 9.等待 二.log ...
- PO模型(设计模式)
文章目录 什么是PO模型 PO优点: PO的核心 实例 什么是PO模型 PO模型全称:Page Object(思想与面向对象的特征相同),也叫PO设计模式.他的出现主要是为了解决自动化测试中代码量增加 ...
- 使用po模型进行自动化测试
编写公用的父类方法 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionC ...
- Python+Selenium WebUI自动化框架 -- 实现特殊PO模型
前言: 设计执行格式,封装PO模型工厂,实现PO模型脱离代码,一套代码执行所有项目的UI自动化,让UI自动化框架脱离高成本.低效率时代,将用例的重用性贯彻到极致,让烦人的PO模型变得无所谓,让一个测试 ...
最新文章
- 作为管理者的你,如何用人?一点建议给你
- Pandas的学习(3.DataFrame的创建方法和三种索引方法(iloc、loc、values)以及切片)
- 用java解决约瑟夫循环问题_Java采用循环链表结构求解约瑟夫问题
- Android自定义View之上拉、下拉列表 头部元素跟随 缩放、平移效果的实现
- CISCO、JUNIPER网络技术训练中心ITAA等级四(RS)学习计划蓝图(version 1.0)
- STM32 JLINK接口定义 JTAG/SWD
- linux addr2line 用法,addr2line的用法
- matlab2014如何获得hostid,关于如何修改hostid的问题
- 告别飘云!飘云QQ核心技术人员正式声明退出开发[含全文]
- Python基础入门:函数--阿里云天池
- 从《三体》中的“降维打击”看网络世界,论维度升级的方法与实践
- 什么是四种七和弦 和三种转位
- PCB设计规则总结和原因分析
- 【Gamma】Scrum Meeting 1 与助教谈话
- 下载ZIP压缩包(压缩多个文件)
- 2020年第十七届中国研究生数学建模竞赛C题 面向康复工程的脑信号分析和判别建模
- IEEE 802.15.4的信道接入机制二信标网络中的CSMA-CA算法
- Labview移位寄存器理解(例子说明)
- PTA 程序设计天梯赛【day2】
- Unity 技能范围指示器
热门文章
- ansible剧本规范目录结构
- Python 中文分词 jieba(小白进)
- 网页打开android app,android 网页中打开 app指定页面
- Follow My Heart
- 职高对口计算机应用资料,2020年湖南省职高对口计算机应用综合试卷(三校联考)...
- MBP本,完美多分区装双系统图文教程,多分区而不影响苹果系统GUID分区表,图文教程...
- JSBridge 原理
- Java调用 新浪微博API 接口发微博,逐项讲解,绝对清晰
- 12.Python文件操作与字符编码
- 爬虫案例:手把手教你爬取图片