import timefrom
appium import webdriverfrom appium.options.android import UiAutomator2Optionsfrom appium.webdriver.common.appiumby import AppiumByfrom
selenium.webdriver.support import expected_conditionsfrom selenium.webdriver.support.wait import WebDriverWait
class TestWait:
def setup_class(self):
''' 完成 capability 设置 初始化 driver :return: '''
# 设置 cpability
caps = {
"platformName": "Android",
# 设置 appium 驱动
"appium:automationName": "uiautomator2",
# 设置设备名称
"appium:deviceName": "emulator-5554",
# 设置被测 app 的包名
"appium:appPackage": "io.appium.android.apis",
# 设置被测 app 启动页面的 Activity
"appium:appActivity": ".ApiDemos",
# 不清空缓存信息
"appium:noReset": True,
# 首次启动的时候,不停止app
"appium:dontStopAppOnReset": True,
# 跳过安装,权限设置等操作
"appium:skipDeviceInitialization": True,
}
# 初始化 driver
self.driver = webdriver.Remote(
"http://127.0.0.1:4723",
options=UiAutomator2Options().load_capabilities(caps)
)
def teardown_class(self):
''' 关闭 driver :return: '''
self.driver.quit()
def test_wait(self):
''' 点击 OS 按钮后等待 3 秒 输入框输入内容后等待 2 秒 点击返回按钮后等待 2 秒 :return: '''
# 测试步骤
# 找到 OS 元素
el5 = self.driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="OS")
# 点击 OS 元素
el5.click()
# 等待 3 秒
time.sleep(3)
# 找到 Morse Code 元素
el6 = self.driver.find_element(AppiumBy.ACCESSIBILITY_ID, "Morse Code")
el6.click()
# 找到输入框元素
el7 = self.driver.find_element(AppiumBy.ID, "io.appium.android.apis:id/text")
# 在输入框中输入内容
el7.send_keys("ceshiren.com")
# 等待 2 秒
time.sleep(2)
# 点击返回按钮
self.driver.back()
# 等待 2 秒
time.sleep(2)
# 点击返回按钮
self.driver.back()
# 断言:判断首页中第一个元素的文本内容是 Access'ibility
result = self.driver.find_element(
AppiumBy.XPATH,
"//*[@resource-id='android:id/text1'][1]"
)
print(result.text)
assert result.text == "Access'ibility"