当前位置: 首页 > news >正文

Python中的PO模型的实例

1.PO模型在自动化中经常会被使用到,一下就是PO模型的具体实例

2.实现BasePage
fromseleniumimportwebdriverfromselenium.webdriver.common.action_chainsimportActionChains#鼠标操作classBasePage():''' BasePage封装所有界面都公用的方法。 例如driver,find_element等 '''# 实例化BasePage类时,事先执行的__init__方法,该方法需要传递参数def__init__(self,driver,url):self.driver=driver self.base_url=url# 进入网址defget(self):self.driver.get(self.base_url)#元素定位,替代八大定位defget_element(self,*locator):returnself.driver.find_element(*locator)#点击defleft_click(self,*locator):ActionChains(self.driver).click(self.get_element(*locator)).perform()#输入defsend_text(self,text,*locator):self.driver.find_element(*locator).send_keys(text)#清除defclear_text(self,*locator):self.driver.find_element(*locator).clear()# 表单切换defswitch_iframe(self,*locator):self.driver.switch_to.frame(self.driver.find_element(*locator))#窗口切换defswitch_window(self,n):self.driver.switch_to.window(self.driver.window_handles[n])
3.实现SearchPage
fromselenium.webdriver.common.byimportByfrombase.base_pageimportBasePageclassSearchOne(BasePage):def__init__(self,driver,url):BasePage.__init__(self,driver,url)#进入百度defopen_baidu(self):self.get()#输入数据definput_search_content(self,text):self.send_text(text,By.ID,"kw")# 点击按钮defclick_baidu_search(self):self.left_click(By.ID,"su")defclick_open_hao(self):self.left_click(By.XPATH,".//*[@id='1']/h3/a[1]")
4.实现TestCase `` ```pythonimportunittestfromseleniumimportwebdriverfrompage.page_oneimportSearchOnefrompage.page_twoimportSearchTwoclassBaiBu(unittest.TestCase):@classmethoddefsetUpClass(cls)->None:cls.driver=webdriver.Firefox()cls.driver.implicitly_wait(10)deftest001(self):url="http://www.baidu.com"s=SearchOne(self.driver,url)s.open_baidu()s.input_search_content("123")s.click_baidu_search()s.click_open_hao()self.driver.switch_to.window(self.driver.window_handles[1])deftest002(self):s=SearchTwo(self.driver,"")s.open_baidu_map()deftearDown(self)->None:# self.driver.quit()passif__name__=='__main__':unittest.main()
5.pytest模式写法
fromseleniumimportwebdriverclassTest_loginDvwa():deftest_login(self):self.driver=webdriver.Firefox()self.url="http://10.5.1.247/dvwa/login.php"username="admin"password="password"sr=DvwaPage(self.driver,self.url)sr.login_dvwa(username,password)sr.search("nick")ifname==‘main’:pytest.main(["-sq","test_loginDvwa.py"])
http://www.jsqmd.com/news/335135/

相关文章:

  • AI原生应用里语义搜索的智能交互体验
  • 2-2午夜盘思
  • 傅立叶光学的Matlab实现方法
  • 大数据领域Doris的集群扩容与缩容方案
  • Serverless架构实战:用AWS Lambda构建无服务器应用
  • 基于SSH的房地产在线交易系统开发与实现
  • 【回溯】二叉树的所有路径
  • 机器人中的磁编码器
  • 机器学习模型部署指南:使用TensorFlow Serving和Docker
  • 基于PHP技术的小神童文具交易网设计与实现
  • 【watercloud】【.net core】树形表格展开或收起节点属性
  • WebAssembly入门:用Rust编写高性能浏览器端应用
  • 基于PHP的大学生励志网的设计与实现任务书
  • Go语言并发模式深度剖析:从Goroutine到Channel最佳实践
  • 基于SSH的BBS论坛系统_开题报告
  • 一分钱不花?这几个0成本降AI方法,有效降AI!
  • DeepSeek处理敏感信息并生成结构化分析结果——以消防数据脱敏为例
  • 2026年全链路 GEO服务商全景评测与选型指南 - 品牌2025
  • AWS Lambda冷启动优化策略:减少函数延迟的5种方法
  • DevOps流水线优化:Jenkins Pipeline与K8s集成实战案例
  • 当 DeepSeek-R2 遇上 AI Agent,谁在补齐“落地最后一公里”?
  • 基于PHP+MySQL的投票管理系统开题报告
  • 关于IP送中的影响和解决办法
  • 等保2.0合规实践:DeepSeek辅助企业数据分类分级与自动化报告生成
  • 工作感受月记(202602月)
  • Vue 3 Composition API深度实践:打造企业级组件库的架构设计
  • <span class=“js_title_inner“>国内头部物流集成商:四季度营收暴增至峰值2倍</span>
  • Go语言并发模式:channel与select的实战应用
  • 机器学习模型部署:TensorFlow Serving与Docker实战
  • 从PyTorch到MindSpore:一次高效易用的AI框架迁移体验