print(driver.current_activity) # page_source print(driver.page_source) # 获取 app 屏幕大小 print(driver.get_window_size()) # 原生app没用, # print(driver.current_window_handle) time.sleep(5) # 滑屏操作 for i in range(3): driver.swipe(600, 500, 10, 500) # app 测试当中和 web 自动化测试不同在于 app 容易崩。 time.sleep(0.2) # 点击立即进入 # driver.find_element_by_id('com.xxzb.fenwoo:id/btn_start') # uiautomator start_btn = driver.find_element_by_android_uiautomator( 'new UiSelector().resourceId("com.xxzb.fenwoo:id/btn_start")') start_btn.click() # 首页元素定位 my = driver.find_element_by_xpath('//android.widget.TextView[@text=\"我\"]') my.click() # 一定要手动关闭,不然会出现:1 ,设备找不到;2, viewer 不能截屏了。
#uiautomator # loc_ningmeng='new UiSelector.text("柠檬社区")' # driver.find_element_by_android_uiautomator(loc_ningmeng) # # #content_desc的值 # driver.find_element_by_accessibility_id() # #id # driver.find_element_by_id() # #class # driver.find_element_by_class_name() time.sleep(2) #滑屏操作 #先获取窗口的大小 size=driver.get_window_size() #左滑先确定到size的宽90宽50 star_x=size["width"]*0.9 star_y=size["height"]*0.5 end_x=size["width"]*0.1 end_y=size["height"]*0.5 # driver.swipe(star_x,star_y,end_x,end_y,duration=200) for i in range(3): driver.swipe(star_x, star_y, end_x, end_y, duration=200) time.sleep(1) #向右滑动 # driver.swipe(end_x,star_y,star_x,end_y,duration=200)
# driver.find_element_by_accessibility_id() # TODO: java 当中要用双引号表示字符串 # new UiSelector().className(\"android.widget.FrameLayout\").resourceId(\"com.lemon.lemonban:id/navigation_my\").clicable() # driver.find_element_by_android_uiautomator('new UiSelector().className(\"android.widget.FrameLayout\").resourceId(\"com.lemon.lemonban:id/navigation_my\")') #查找元素方式 #driver.find_element #元素等待 driver.implicitly_wait(20) windown_size = driver.get_window_size() print(windown_size) time.sleep(5) #滑动,需要滑动3次 for i in range(3): driver.swipe(800, 500, 10, 500) time.sleep(0.2) #点击立即进入 #driver.find_element_by_id('com.xxzb.fenwoo:id/btn_start') #java的写法uiautomator start_btn = driver.find_element_by_android_uiautomator( 'new UiSelector().resourceId("com.xxzb.fenwoo:id/btn_start")') start_btn.click() #首页元素定位 my = driver.find_element_by_xpath('//android.widget.TextView[@text=\"我\"]') #手动关闭 #driver.quit()
#"app":r"E:\zengcong\software\appium\Future-release-2018.apk", "app": r"D:\software\Appium\Future-release-2018.apk", "noReset": True } # 创建一个会话 driver = Remote(command_executor='http://127.0.0.1:4723/wd/hub', desired_capabilities=caps) # 等待 driver.implicitly_wait(10) # 进入首页看到欢迎界面,欢迎界面需要滑动 # driver.swipe(start_x=500,end_x=0,start_y=200,end_y=200) # time.sleep(3) # driver.swipe(start_x=500,end_x=0,start_y=200,end_y=200) # time.sleep(3) # 不能使用绝对坐标,得使用百分比坐标 # 获取屏幕的宽度和高度,800和1000,直接从x轴的90%,到10% # 720PX ----> 80px,纵坐标:500 ----> 500 # 先获取屏幕的宽度和高度 size = driver.get_window_size() print(size) height = size['height'] width = size['width'] driver.swipe(start_x=width * 0.9, start_y=height * 0.5, end_x=width * 0.1, end_y=height * 0.5) time.sleep(3)
"appPackage": "com.lemon.lemonban", "appActivity": "com.lemon.lemonban.activity.WelcomeActivity" } driver = Remote(command_executor='http://127.0.0.1:4723/wd/hub', desired_capabilities=desired_cap) driver.implicitly_wait(15) # el1 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout[2]/android.view.ViewGroup/android.widget.FrameLayout[3]/android.widget.ImageView") # el1.click() # el2 = driver.find_element_by_id("com.lemon.lemonban:id/fragment_my_lemon_avatar_title") # el2.click() # el1 = driver.find_element_by_id("com.lemon.lemonban:id/et_mobile") # el1.click() # el1.send_keys("123456") # el2 = driver.find_element_by_id("com.lemon.lemonban:id/et_password") # el2.click() # el2.send_keys("123456") # el5 = driver.find_element_by_id("com.lemon.lemonban:id/btn_login") # el5.click() # driver.find_element_by_android_uiautomator('new UiSelector().text("我的柠檬")').click() # driver.find_element_by_android_uiautomator('new UiSelector().text("我的柠檬")').click() # driver.find_element_by_android_uiautomator('new UiSelector().text("点击头像登录")').click() # 通过坐标点击 driver.tap([(621, 1523)], 200) # 滑动 driver.swipe(start_x=200, start_y=660, end_x=1100, end_y=660, duration=200) #获取屏幕窗口宽高 res = driver.get_window_size() print()
caps = { "platformName": "Android", "platformVersion": "5.1", "deviceName": "Android Emulator", "appActivity": "com.xxzb.fenwoo.activity.addition.WelcomeActivity", "appPackage": "com.xxzb.fenwoo", "noReset": "False" } android_driver = Remote(desired_capabilities=caps) android_driver.implicitly_wait(10) # 获取手机的尺寸 phone_size = android_driver.get_window_size() # 等待启动 time.sleep(2) for i in range(4): android_driver.swipe(phone_size['width'] * 0.9, phone_size['width'] * 0.5, phone_size['width'] * 0.1, phone_size['width'] * 0.5) time.sleep(1) # 点击立即体检进入首页 # android_driver.find_element_by_id("com.xxzb.fenwoo:id/btn_start").click() android_driver.find_element_by_android_uiautomator( 'new UiSelector().resourceId("com.xxzb.fenwoo:id/btn_start")').click() time.sleep(2) android_driver.quit()
class Client: def __init__(self): super(Client, self).__init__() self.config = Config() self.desired_caps = { 'platformName': self.config.get_config('DESIRED_CAPS', 'platformName'), 'platformVersion': self.config.get_config('DESIRED_CAPS', 'platformVersion'), 'deviceName': self.config.get_config('DESIRED_CAPS', 'deviceName'), 'appPackage': self.config.get_config('DESIRED_CAPS', 'appPackage'), 'appActivity': self.config.get_config('DESIRED_CAPS', 'appActivity'), # 'udid': '127.0.0.1:4723', 'unicodeKeyboard': True, 'resetKeyboard': True, 'autoGrantPermissions': True, 'automationName': 'uiautomator2', 'app': PATH("packages/apps-release.apk") } self.driver_url = self.config.get_config('APP_DATABASE', 'driver_url') # self.driver = Remote("http://127.0.0.1:4723/wd/hub", self.desired_caps) self.driver = Remote('{}'.format(self.driver_url), self.desired_caps) self.driver.implicitly_wait(15) self.wait = WebDriverWait def find(self, xpath): result = self.driver.find_element_by_xpath(xpath).text return result def click(self, res): try: self.driver.find_element_by_id(res).click() except: self.driver.find_element_by_xpath(res).click() def xpath(self, xpath): self.driver.find_element_by_xpath(xpath).click() def send_keys(self, res, keywords): try: self.driver.find_element_by_id(res).send_keys(keywords) except: self.driver.find_element_by_xpath(res).send_keys(keywords) def swipe(self, res): width = self.driver.get_window_rect()['width'] height = self.driver.get_window_rect()['height'] i = 0 while i < 10: try: self.driver.find_element_by_id(res).is_enabled() break except Exception as e: self.driver.swipe(width / 2, height * 0.8, width / 2, height * 0.2) i = i + 1