# -*- coding:utf-8 -*-
desired_caps = {
'platformName': 'Android',
'plathformVersion': '10',
'deviceName': 'X4UOCQOF79AUZX79',
'appPackage': 'com.hpbr.bosszhipin',
'appActivity': '.module.launcher.WelcomeActivity',
'noReset': "True",
'newCommandTimeout': 6000,
'automationName': 'UiAutomator2', # 或者UiAutomator1
}
# -*- coding:utf-8 -*-
from utils.settings import desired_caps
from appium import webdriver
import time
class MyDriver:
_driver = None
@classmethod
def get_driver(cls):
if cls._driver is None:
cls._driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
cls._driver.implicitly_wait(10)
return cls._driver
def swipe_up(self, t=1000, n=1):
"""向上滑动"""
# 获取手机的屏幕高度和宽度
coordinator = self._driver.get_window_size()
# 获取最大横坐标的一半
x1 = coordinator["width"] * 0.5
# 获取四分之一位置、以及四分之三位置的纵坐标
y1 = coordinator["height"] * 0.75
y2 = coordinator["height"] * 0.25
for i in range(n):
self._driver.swipe(x1, y1, x1, y2, t)
driver = MyDriver()
if __name__ == '__main__':
d = driver.get_driver()
print(d)
# time.sleep(5)
# driver.swipe_up()
# -*- coding:utf-8 -*-
from utils.myDriver import driver
import pytest
import time
"""
当多条测试用例存在的时候
我们难以保证上一条case的结束页面,恰好是下一个case的开始页面
所以,设计app自动化用例的时候,保证每一条case都从首页开始
那么就要求我们,每一条case的开始,都能初始化APP到首页
"""
def test_update_pwd():
# 进入我的标签
driver.get_driver().find_element_by_id("com.hpbr.bosszhipin:id/iv_tab_4").click()
# 点击右上角设置图标
driver.get_driver().find_element_by_xpath("//*[@resource-id='com.hpbr.bosszhipin:id/rl_title']/*[2]").click()
# 点击账号与绑定
driver.get_driver().find_element_by_xpath("//*[@resource-id='com.hpbr.bosszhipin:id/rv_list']/*[1]").click()
# 点击修改密码
time.sleep(1)
driver.get_driver().find_element_by_xpath("//*[@resource-id='com.hpbr.bosszhipin:id/rv_list']/*[2]").click()
time.sleep(5)
# # 因为获取不了定位信息,所有拿到页面xml到本地进行定位
# print(driver.get_driver().page_source)
# 输入旧密码
driver.get_driver().find_element_by_id("com.hpbr.bosszhipin:id/et_old").send_keys("boss123")
# 输入新密码
driver.get_driver().find_element_by_id("com.hpbr.bosszhipin:id/et_new").send_keys("12346asd")
# 确认新密码
driver.get_driver().find_element_by_id("com.hpbr.bosszhipin:id/et_new_confirm").send_keys("12346asd")
# 点击修改密码按钮
driver.get_driver().find_element_by_id("com.hpbr.bosszhipin:id/btn_save").click()
time.sleep(5)
driver.get_driver().start_activity("com.hpbr.bosszhipin", ".module.launcher.WelcomeActivity")
def test_search_job():
# 点击 boss 直聘上的放大镜 # 在 appium自动化中,元素定位以class属性代替标签名
driver.get_driver().find_element_by_xpath(
"//*[@resource-id='com.hpbr.bosszhipin:id/ly_menu']/android.widget.RelativeLayout[2]").click()
# 对输入框输入值--软件测试,被输入值的元素一定是 EditText
driver.get_driver().find_element_by_id("com.hpbr.bosszhipin:id/et_search").send_keys("软件测试")
# 选择第一个搜索结果
driver.get_driver().find_element_by_xpath("//*[@resource-id='com.hpbr.bosszhipin:id/lv_matcher']/*[1]").click()
time.sleep(5)
driver.get_driver().start_activity("com.hpbr.bosszhipin", ".module.launcher.WelcomeActivity")
if __name__ == '__main__':
pytest.main(["-s"])
|