首页 > 编程知识 正文

po模型三层,自动化测试框架po模型

时间:2023-05-06 09:58:11 阅读:277065 作者:3463

BasePage

from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChains #鼠标操作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

page1

百度---》搜索123==》百度按钮--》hao123

from baseDemo.basepage import BasePagefrom selenium.webdriver.common.by import Byclass PageOne(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")

page2

跳转hao123窗口--->百度地图

from baseDemo.basepage import BasePagefrom selenium.webdriver.common.by import Byclass PageTwo(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)")

testDemo

import unittestfrom selenium import webdriverfrom pageDemo.page1 import PageOnefrom pageDemo.page2 import PageTwoclass 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 = PageOne(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 = PageTwo(self.driver,url) pw.bddt() @classmethod def tearDownClass(cls) -> None: #cls.driver.quit() passif __name__ == '__main__': unittest.main()

 

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