首页 > 其他分享 >UI自动化工厂

UI自动化工厂

时间:2022-10-07 00:13:34浏览次数:45  
标签:__ return self driver 工厂 UI 自动化 import def

学习笔记

环境:python39+pytest+unittest+selenium+webdriver

创建工程文件OOP,文件夹UI

base.py如下:

 1 from selenium import webdriver
 2 from selenium.webdriver.common.by import By
 3 from selenium.webdriver.support.expected_conditions import NoSuchElementException
 4 from selenium.webdriver.support.wait import WebDriverWait
 5 from appium.webdriver.common.mobileby import MobileBy
 6 
 7 
 8 class Factory(object):
 9     def createObj(self, obj):
10         if obj == 'web':
11             return WebUI()
12         if obj == 'app':
13             return AppUI()
14 
15 class WebDriver(object):
16     def __init__(self, driver):
17         self.driver = driver
18 
19     def findElement(self, *loc):
20         try:
21             return WebDriverWait(
22                 driver=self.driver,
23                 timeout=10).until(lambda x: x.find_element(*loc))
24         except NoSuchElementException as e:
25             return e.args[0]
26 
27     def findElements(self, *loc):
28         try:
29             return WebDriverWait(
30                 driver=self.driver,
31                 timeout=10).until(lambda x: x.find_elements(*loc))
32         except NoSuchElementException as e:
33             return e.args[0]
34 
35 
36 class WebUI(WebDriver):
37     def __str__(self):
38         return 'web'
39 
40 class AppUI(WebDriver):
41     def __str__(self):
42         return 'app'
View Code

 page.py如下:

 1 from selenium.webdriver.common.by import By
 2 from OOP.ui.base import WebUI
 3 
 4 class Baidu(WebUI):
 5     so_loc=(By.ID,'kw')
 6 
 7     def typeSo(self,content):
 8         self.findElement(*self.so_loc).send_keys(content)
 9 
10     def getSo(self):
11         return self.findElement(*self.so_loc).get_attribute('value')
View Code

test_baidu.py如下:

 1 import unittest
 2 from selenium import webdriver
 3 import time as t
 4 from OOP.ui.page import Baidu
 5 
 6 class BaiduTest(unittest.TestCase,Baidu):
 7     def setUp(self) -> None:
 8         self.driver=webdriver.Chrome()
 9         self.driver.maximize_window()
10         self.driver.get('http://www.baidu.com')
11         self.driver.implicitly_wait(30)
12 
13     def tearDown(self) -> None:
14         self.driver.quit()
15 
16     def test_baidu_so(self):
17         self.typeSo(content='搜索关键字')
18         t.sleep(5)
19         self.assertEqual(self.getSo(),'搜索关键字')
20 
21 if __name__ == '__main__':
22     unittest.main(verbosity=2)

 

2022-10-6笔记

标签:__,return,self,driver,工厂,UI,自动化,import,def
From: https://www.cnblogs.com/yuntimer/p/16758760.html

相关文章

  • 图片转素描风格处理软件详解(Python实现,含UI界面及代码)
    摘要:本文主要介绍图片转素描风格的\(\color{#4285f4}{P}\color{#ea4335}{y}\color{#fbbc05}{t}\color{#4285f4}{h}\color{#34a853}{o}\color{#ea4335}{n}\)软件设计,图像......
  • 自制简易谷歌翻译器详解(附完整UI界面及代码文件)
    摘要:Google翻译大概是目前机器翻译中翻译最为准确的了,本文分别使用了两种可行的方式编写了简易的谷歌翻译软件。将详细介绍调用谷歌翻译API和自行定义谷歌翻译接口的方式......
  • MSBuild 命令的简单使用
    MSBuild 命令的简单使用独立观察员2022年7月7日位置在 VS 安装目录下,如:D:MicrosoftVisualStudio2022EnterpriseMSBuildCurrentBin命令MSBuild命令行参考-MS......
  • 自制的MATLAB拼图游戏GUI界面版详解(中篇)
    摘要:这篇博文在早前本人写的介绍拼图游戏的基础上推出带有GUI用户界面的增强版,这里将通过上、中、下三篇博文详细介绍利用MATLABGUI设计的拼图游戏完整实现过程,每篇都会......
  • 接口自动化框架脚手架-从Excel读取用例发起调用做断言
    作者:软件质量保障大家工作中统计测试用例、测试进度以及各种测试报表,或多或少离不开Excel,我们可以使用Excel公式实现自动化统计,当然也可以使用代码实现Excel数据的统计。今......
  • 自制的MATLAB拼图游戏GUI界面版详解(上篇)
    摘要:这篇博文在早前本人写的介绍拼图游戏的基础上推出带有GUI用户界面的增强版,这里将通过上、中、下三篇博文详细介绍利用MATLABGUI设计的拼图游戏完整实现过程,每篇都会......
  • 关于tkinter-gui窗体中循环周期性执行某段代码的方法记录
    最近笔者在写一个窗体程序时,希望能每隔1秒,周期性的定时刷新文本框中的内容,但最后发现很难实现出现各种各样的问题,最后通过查询大量的资料,才找到原因和解决方法为了阐述清......
  • 面试官:工厂方法模式是什么?
    真正的大师永远怀着一颗学徒的心吃不了学习的苦就要吃生活的苦文章持续更新,可以微信搜索【小奇JAVA面试】第一时间阅读,回复【资料】更有我为大家准备的福利哟!回复【项目】......
  • quicklib json序列
    quicklibjson序列quicklib面向MODEL的JSON序列。unitUnit2;///<author>cxg2022-6-14</author>interfaceusesquick.Json.Serializer,Quick.MemoryCache.Seri......
  • Cost function - deeper intuition
    Costfunction-deeperintuition标签(空格分隔):ML目录Costfunction-deeperintuition1.costfunctionwhere\(\theta_1=0\)2.costfunctionwhere\(\theta_1\neq......