appium控制手机一直从下往上滑动
import unittest
from time import sleep
from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
class TestScrollSettings(unittest.TestCase):
"""
测试滚动设置的类。
该类包含了在Android设备上通过Appium测试框架对设置应用进行滚动测试的方法。
"""
def setUp(self):
"""
测试前的准备工作。
初始化Appium驱动,设置Android设备的自动化测试选项,包括平台名称、自动化工具名称、设备名称、应用包名、应用活动、语言和地区等。
"""
options = UiAutomator2Options()
capabilities = dict(
platformName='Android',
automationName='uiautomator2',
deviceName='Android',
appPackage='com.android.settings',
appActivity='.Settings',
language='en',
locale='US'
)
for key, value in capabilities.items():
options.set_capability(key, value)
self.driver = webdriver.Remote('http://localhost:4723', options=options)
def tearDown(self):
"""
测试结束后的清理工作。
关闭Appium驱动。
"""
self.driver.quit()
def test_scroll_settings(self):
"""
测试滚动设置的功能。
通过WebDriverWait和ActionChains不断尝试滚动设置界面向前,直到出现异常或达到预期结果。
"""
wait = WebDriverWait(self.driver, 10)
actions = ActionChains(self.driver)
while True:
try:
# 使用Expected Condition等待元素出现,然后执行滚动动作
element = wait.until(EC.presence_of_element_located((AppiumBy.ANDROID_UIAUTOMATOR, 'new UiScrollable(new UiSelector().scrollable(true)).scrollForward()')))
actions.move_to_element(element).perform()
sleep(5) # 暂停5秒,以便观察滚动效果
except Exception as e:
print(e)
break
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(TestScrollSettings)
unittest.TextTestRunner(verbosity=2).run(suite)