Base类 公共类
base.py 封装公共方法 get_driver.py设备信息
from selenium.webdriver.support.wait import WebDriverWait
class Base():
def __init__(self,driver):
self.driver=driver
# 封装查找元素的方法 真正目的是给以下方法使用 点击、输入
def base_find_element(self,loc,timeout=30,poll=0.5):
return WebDriverWait(self.driver,timeout=timeout,poll_frequency=poll).until(lambda x:x.find_element(*loc))
# 封装点击方法
def base_click_element(self,loc):
self.base_find_element(loc).click()
# 封装输入方法
def base_input_text(self,loc,text):
self.base_find_element(loc).send_keys(text)
# 封装截图方法
def base_get_img(self):
self.driver.get_screenshot_as_file("../Image/img01.png")
from appium import webdriver
def get_driver():
# server 启动参数
desired_caps = {}
# 设备信息
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1'
desired_caps['deviceName'] = '192.168.56.101:5555'
# 设置中文
desired_caps['unicodeKeyboard']=True
desired_caps['resetKeyboard']=True
# app的信息
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'
# 声明我们的driver对象
return webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
page类 页面类
page_setting.py 私有方法 继承Base类 调用Base类方法
from selenium.webdriver.common.by import By
from Base.base import Base
"""
以下定位数据,我们临时先放到这里
"""
# 搜索按钮id
search_btn = By.ID, "com.android.settings:id/search"
input_search=By.ID,"android:id/search_src_text"
back_btn=By.CLASS_NAME,"android.widget.ImageButton"
class PageSetting(Base):
# 点击搜索按钮 方法封装
def page_click_search_btn(self):
# 调用base类点击元素方法
self.base_click_element(search_btn)
# 输入 方法封装
def page_input_text(self,text):
self.base_input_text(input_search,text)
# 点击搜索框返回按钮
def page_click_back_btn(self):
self.base_click_element(back_btn)
Scripts类 执行测试类
test_setting.py 调用page类方法
import sys, os
sys.path.append(os.getcwd())
from Page.page_setting import PageSetting
from Base.get_driver import get_driver
class TestSetting():
def setup(self):
# 获取driver
self.driver = get_driver()
# 实例化setting页面对象
self.setting = PageSetting(self.driver)
def teardown(self):
# 关闭driver驱动对象
self.driver.quit()
# 执行测试方法
def test_setting(self):
# 点击搜索按钮
self.setting.page_click_search_btn()
# 输入搜索内容
self.setting.page_input_text("wlan")
# 点击返回按钮
self.setting.page_click_back_btn()
pytest.ini 配置文件
[pytest]
addopts= -s --html=./Report/report.html --reruns 1
testpaths=./Scripts
python_files=test_setting.py
python_classes=Test*
python_functions=test*