土土优选app登录

土土优选app登录

前置条件

conftest

import pytest
from appium.webdriver import Remote
from selenium.webdriver.common.by import By
from common.basepage import BasePage
from pages.nav import NavPage


@pytest.fixture()
def driver():
    caps = {
        "platformName":"Android",        # 使用哪个移动操作系统平台:安卓
        "automationName": "Uiautomator2", # 必须要加才能定位 toast
        "deviceName":"emulator-5554",    # 要使用的移动设备或模拟器的类型:雷电模拟器
        "appPackage":"com.shop7.soiloptimization",    # 要运行的包:包名
        "appActivity":"com.shop7.soiloptimization.splash.SplashActivity",   # 启动包的会话:包的会话
        "chromedriverExecutable":"C:\chromedriver\chromedriver_242.exe", #  驱动
        "noReset":True               # 是否不重启:是
    }
    session = Remote(command_executor="http://127.0.0.1:4723/wd/hub",
                    desired_capabilities=caps)

    # 设置隐性等待
    session.implicitly_wait(10)
    yield session
    session.quit()


@pytest.fixture()
def login(driver):
    """登录的前置条件.
        作为前置条件,可以通过偶 start_activity() 直接跳转
        """
    page = BasePage(driver)

    # 点击(导航键)我的
    NavPage(driver).my()

    # 元素:登录头像————点击
    up_win = (By.ID,'com.shop7.soiloptimization:id/iv_head')
    page.click(up_win)

    # 元素:选择使用账号和密码登录————点击
    user_pass = (By.XPATH, '//*[@resource-id="com.shop7.soiloptimization:id/tv_loginpwd"]')
    page.click(user_pass)

    # 元素:输入账号————输入
    user_name = (By.XPATH, '//*[@resource-id="com.shop7.soiloptimization:id/et_phone"]')
    page.fill(user_name,"")

    # 元素:输入密码————输入
    password = (By.XPATH, '//*[@resource-id="com.shop7.soiloptimization:id/et_pwd"]')
    page.fill(password,"")

    # 元素:登录————点击
    up_login= (By.XPATH, '//*[@resource-id="com.shop7.soiloptimization:id/btn_login"]')
    page.click(up_login)
    return driver

=============================================================

屏幕地下的导航栏

pages 模块

nav.py 的导航栏文件

from selenium.webdriver.common.by import By
from common.basepage import BasePage


class NavPage(BasePage):
    # 元素:首页
    homepage = (By.ID,'com.shop7.soiloptimization:id/main')

    # 元素:分类
    classify = (By.ID,'com.shop7.soiloptimization:id/type')

    # 元素:土味
    che_esy = (By.ID,'com.shop7.soiloptimization:id/gift')

    # 元素:购物车
    shopping = (By.ID,'com.shop7.soiloptimization:id/car')

    # 元素:我的
    my_locator = (By.ID, 'com.shop7.soiloptimization:id/mine')

    # 首页
    def home_page(self):
        self.click(self.homepage)
        return self

    # 分类
    def class_ify(self):
        self.click(self.classify)
        return

    # 土味
    def cheesy(self):
        self.click(self.che_esy)
        return self

    # 购物
    def shop_ping(self):
        self.click(self.shopping)
        return self

    # 我的
    def my(self):
        self.click(self.my_locator)
        return self


=======================================================================

用户登录页面

pages 模块

user.py 用户登录文件

from selenium.webdriver.common.by import By

from common.basepage import BasePage

class UserPage(BasePage):
    # 元素:登录头像————点击
    up_win = (By.ID, 'com.shop7.soiloptimization:id/iv_head')

    # 元素:选择使用账号和密码登录————点击
    user_pass = (By.XPATH, '//*[@resource-id="com.shop7.soiloptimization:id/tv_loginpwd"]')

    # 元素:输入账号————输入
    user_name = (By.XPATH, '//*[@resource-id="com.shop7.soiloptimization:id/et_phone"]')

    # 元素:输入密码————输入
    password = (By.XPATH, '//*[@resource-id="com.shop7.soiloptimization:id/et_pwd"]')

    # 元素:登录————点击
    up_login = (By.XPATH, '//*[@resource-id="com.shop7.soiloptimization:id/btn_login"]')

    # 元素:手机号码
    phone_up = (By.XPATH,'//*[@resource-id="com.shop7.soiloptimization:id/tv_phone"]')

    def login(self,username,password):
        # 元素:登录头像————点击
        self.click(self.up_win)
        # 元素:选择使用账号和密码登录————点击
        self.click(self.user_pass)
        # 元素:输入账号————输入
        self.fill(self.user_name, username)
        # 元素:输入密码————输入
        self.fill(self.password, password)
        # 元素:登录————点击
        self.click(self.up_login)

    # 获取手机号码————等待断言
    def actual(self):
        el = self.find_element(self.phone_up)
        return el.get_attribute("text")

====================================================================

用例执行test

tests 模块

ttyx_win.py 优选的登录优化(PO)

from pages.nav import NavPage
from pages.user import UserPage
from common.yaml_handler import yaml_config

yaml = yaml_config["user1"]


class Test_login():
    def test_login(self,driver):
        NavPage(driver).my()
        UserPage(driver).login(yaml["user"],yaml["password"])
        el = UserPage(driver).actual()
        assert el == "19142706623"


========================================================

yaml的调用过程

在这里插入图片描述

path.py

## 管理项目下的路径
import os

# 获取当前文件的路径
config_path = os.path.abspath(__file__)
print(config_path)

# config 目录
config_dir = os.path.dirname(config_path)
print(config_dir)

# lesson9 项目路径
root_dir = os.path.dirname(config_dir)
print(root_dir)

# 获取 data 目录路径
data_dir = os.path.join(root_dir, 'conf')
print(data_dir)

if not os.path.exists(data_dir):
    os.mkdir(data_dir)

# yaml 配置文件的路径
config_yaml_path = os.path.join(data_dir, "yaml.yaml")
print(config_yaml_path)

# img 路径
img_path = os.path.join(root_dir, 'img')
if not os.path.exists(img_path):
    os.mkdir(img_path)

===========================================================

yaml_handler.py

import yaml
from common.path import config_yaml_path

def read_yaml(fpath):
    """fpath: yaml 文件的路径"""
    with open(fpath, encoding='utf-8') as f:
        # 读取yaml 当中的数据
        data = yaml.safe_load(f)
        return data


# 获取yaml配置项
yaml_config = read_yaml(config_yaml_path)
print(yaml_config)

代码下载地址: https://pan.quark.cn/s/bc087ffa872a "测控电路课后习题详解"文件.pdf是一份极具价值的学术资料,其中系统地阐述了测控电路的基础理论、系统构造、核心特性及其实际应用领域。 以下是对该文献的深入解读和系统梳理:1.1测控电路在测控系统中的核心功能测控电路在测控系统的整体架构中扮演着不可或缺的角色。 它承担着对传感器输出信号进行放大、滤除杂音、提取有效信息等关键任务,并且依据测量与控制的需求,执行必要的计算、处理与变换操作,最终输出能够驱动执行机构运作的指令信号。 测控电路作为测控系统中最具可塑性的部分,具备易于放大信号、转换模式、传输数据以及适应多样化应用场景的优势。 1.2决定测控电路精确度的关键要素影响测控电路精确度的核心要素包括:(1)噪声与干扰的存在;(2)失调现象与漂移效应,尤其是温度引起的漂移;(3)线性表现与保真度水平;(4)输入输出阻抗的特性影响。 在这些要素中,噪声干扰与失调漂移(含温度效应)是最为关键的因素,需要给予高度关注。 1.3测控电路的适应性表现测控电路在测控系统中展现出高度的适应性,具体表现在:* 具备选择特定信号、灵活实施各类转换以及进行信号处理与运算的能力* 实现模数转换与数模转换功能* 在直流与交流、电压与电流信号之间进行灵活转换* 在幅值、相位、频率与脉宽信号等不同参数间进行转换* 实现量程调整功能* 对信号实施多样化的处理与运算,如计算平均值、差值、峰值、绝对值,进行求导数、积分运算等,以及实现非线性环节的线性化处理、逻辑判断等操作1.4测量电路输入信号类型对电路结构设计的影响测量电路的输入信号类型对其电路结构设计产生显著影响。 依据传感器的类型差异,输入信号的形态也呈现多样性。 主要可分为...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值