首页 > 编程知识 正文

POA模型,pot模型是什么

时间:2023-05-04 13:19:47 阅读:277063 作者:4141

po模型的基本操作 什么是po模型po模型的单个page(界面)的操作创建base文件夹,base文件下创建basepage类创建case文件夹,case文件下创建searchpage类创建page文件夹,case文件下创建test001类 po模型的单个界面操作的文件分类po模型的多个page(界面)的操作创建base文件夹,base文件下创建basePage类创建case文件夹,case文件下创建search,search1类创建page文件夹,case文件下创建test002类 po模型的多个个界面操作的文件分类

什么是po模型

po模型
po模型属于在selenium中进行了再次封装,
1:将公共的方法放在basepage类中,比如获取元素,点击按钮,填充数据,表单切换,窗口切换等
2:将每个界面的业务放在对应的page模块中,继承basepage类,使用什么操作只需要调用父类的方法即可实现
3:在单元测试中,导入对应的模块,添加到测试用例中,就会执行该对应page页的操作

po模型的单个page(界面)的操作 创建base文件夹,base文件下创建basepage类

代码:

from selenium import webdriver#鼠标操作from selenium.webdriver.common.action_chains import ActionChains#单个page界面实现class BasePage(): def __init__(self,driver,url): self.driver = driver self.base_url = url # 进入网址 def get_url(self): self.driver.get(self.base_url) #元素定位,替代八大定位 def get_element(self,*locator): return self.driver.find_element(*locator) #点击 def left_click(self,*locator): ActionChains(self.driver).click(self.get_element(*locator)).perform() #输入 def send_text(self,text,*locator): self.driver.find_element(*locator).send_keys(text) 创建case文件夹,case文件下创建searchpage类

代码:

from selenium.webdriver.common.by import Byfrom base_deom.basepage import BasePageclass SearchPage(BasePage): def __init__(self,driver,url): BasePage.__init__(self,driver,url) #进入百度 def get_baidu(self): self.get_url() #输入搜索内容 def input_search_content(self,text): self.send_text(text,By.ID,"kw") #点击按钮 def click_baidu_search(self): self.left_click(By.ID,"su") 创建page文件夹,case文件下创建test001类

代码:

import unittestfrom selenium import webdriverfrom base_deom.searchpage import SearchPageclass TestClass(unittest.TestCase): def setUp(self) -> None: self.driver = webdriver.Firefox() self.driver.implicitly_wait(10) def test_serach(self): url="http://www.baidu.com" s = SearchPage(self.driver,url) s.get_baidu() s.input_search_content("猫") s.click_baidu_search() def tearDown(self) -> None: # self.driver.quit() passif __name__ == '__main__': unittest.main() po模型的单个界面操作的文件分类

po模型的多个page(界面)的操作 创建base文件夹,base文件下创建basePage类

代码:

from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChains#多个page实现案例class BasePage(): # BasePage封装所有界面都公用的方法。例如driver,find_element等 # 实例化BasePage类时,事先执行的__init__方法,该方法需要传递参数 # 进入网址 def __init__(self, driver, url): self.driver = driver self.base_url = url def get(self): self.driver.get(self.base_url) #元素定位,替代八大定位 def get_element(self, *locator): return self.driver.find_element(*locator) #点击 def left_click(self, *locator): self.driver.find_element(*locator).click() # ActionChains(self.driver).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]) #用于断言 def get_title(self): return self.driver.title 创建case文件夹,case文件下创建search,search1类

search 代码:

#search类from selenium.webdriver.common.by import Byfrom base_duopage.basePage import BasePageclass Search(BasePage): def __init__(self,driver,url): BasePage.__init__(self,driver,url) #访问网站 def get_openbaidu(self): self.get() #获取文本框输入内容 def input_text(self,text): self.send_text(text,By.ID,"kw") #获取百度一下按钮进行点击 def bdyx(self): self.left_click(By.ID,"su") #获取hao_123元素进行点击操作 def hao123(self): self.left_click(By.XPATH,"//div[@id='1']/h3/a/em")

search1 代码

#search1from base_duopage.basePage import BasePagefrom selenium.webdriver.common.by import Byclass Serach2Class(BasePage): def __init__(self, driver, url): BasePage.__init__(self, driver, url) #获取百度地图元素,点击 def bddt(self): self.left_click(By.CSS_SELECTOR, ".js_bd > li:nth-child(6) > div:nth-child(1) > a:nth-child(1)") 创建page文件夹,case文件下创建test002类

代码:

import unittestfrom selenium import webdriverfrom base_duopage.search import Searchfrom base_duopage.search1 import Serach2Classfrom base_duopage.search2 import Search3Classimport timeclass TestClass(unittest.TestCase): @classmethod def setUpClass(cls) -> None: cls.driver = webdriver.Firefox() cls.driver.implicitly_wait(30) def test001(self): url = "http://www.baidu.com" po = Search(self.driver, url) po.get_openbaidu() po.input_text("123") po.bdyx() po.hao123() self.driver.switch_to.window(self.driver.window_handles[1]) def test002(self): url = "" pw = Serach2Class(self.driver, url) pw.bddt() @classmethod def tearDownClass(cls) -> None: # cls.driver.quit() passif __name__ == '__main__': unittest.main() po模型的多个个界面操作的文件分类

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。