from appium import webdriver from time import sleep # 系统配置,直接从appium复制过来 desired_capabilities = { "platformName": "Android", "platformVersion": "5.1.1", "appPackage": "com.baidu.wenku", "appActivity": "com.baidu.wenku.splash.view.activity.WelcomeActivity", "deviceName": "127.0.0.1:62001" } # 打开app (进入appium的custom server) driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_capabilities) sleep(3) # 单击同意并继续 driver.find_element_by_id('com.baidu.wenku:id/tv_agree').click() driver.find_element_by_xpath('//*[@text = "同意并继续"]').click() driver.find_element_by_xpath('//*[contains(@text,"同意并继续")]').click() driver.find_element_by_xpath('//*[@resource-id = "com.baidu.wenku:id/tv_agree"]').click()
#UiAutomator定位方式(允许多个属性同时定位) driver.find_element_by_android_uiautomator('new UiSelector().text("同意并继续")').click() driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.baidu.wenku:id/tv_agree")').click() #resourceId 驼峰命名法 driver.find_element_by_android_uiautomator('className("android.widget.TextView").text("同意并继续").resourceId("com.baidu.wenku:id/tv_agree")').click()
driver.find_element_by_android_uiautomator('new UiSelector().textContains("同意并继")').click() #模糊定位 # 通过父元素来进行定位 driver.find_element_by_android_uiautomator('className("android.widget.FrameLayout").childSelector(text("同意并继续"))').click() # 通过兄弟元素进行定位 driver.find_element_by_android_uiautomator('text("温馨提示").fromParent(text("同意并继续"))').click() # 点击 同意并继续 driver.tap([(450,850)],1000) # 取消升级 driver.find_element_by_id('com.baidu.wenku:id/dialog_pic_close').click() driver.tap([(360,920)],1000) # 点击输入框 driver.find_element_by_id('com.baidu.wenku:id/h5_search_edit_text').click() # 向上滑动 x1 y1 x2 y2 driver.swipe(450,950,450,650) # 输入内容 driver.find_element_by_id('com.baidu.wenku:id/h5_search_edit_text_inside').send_keys('软件测试') # 点击搜索 driver.find_element_by_id('com.baidu.wenku:id/h5_search_operate_text').click() # 获取所有搜索结果标题的文本 texts = [element.get_attribute('text')for element in driver.find_elements_by_class_name('android.view.View')] # 断言 assert '软件测试报告' in texts # 输入搜索关键字 for key,text in [('软件测试','软件测试报告'),('火星探测','火星探测器')]: driver.find_element_by_id('com.baidu.wenku:id/h5_search_edit_text_inside').send_keys(key) sleep(3) # 点击 搜索按钮 driver.find_element_by_id('com.baidu.wenku:id/h5_search_operate_text').click() sleep(10) # 获取所有搜素结果标题的文本 texts = [element.get_attribute('text') for element in driver.find_elements_by_class_name('android.view.View')] # 断言 assert text in texts # 定位元素 mtxx = driver.find_element_by_accessibility_id('美图秀秀') sleep(3) # 操作元素 TouchAction(driver).long_press(mtxx).move_to(x=120,y=80).release().perfrom() sleep(3) # 点击 确定 driver.tap([(600,730)],1000)
# 按HOME键 driver.press_keycode(3) # 按音量键 driver.press_keycode(24) driver.press_keycode(24) driver.press_keycode(24) driver.press_keycode(25) driver.press_keycode(25) driver.press_keycode(25) |