def getDriver(self): desired_caps = {} desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = self.version desired_caps['deviceName'] = 'Android Emulator' # app的信息 desired_caps['appPackage'] = self.packagename desired_caps['appActivity'] = self.activity desired_caps['udid']=self.udid desired_caps['noReset'] = True desired_caps['unicodeKeyboard']=True desired_caps['resetKeyboard']=True desired_caps['autoAcceptAlerts']=True try: driver=Remote(command_executor='http://127.0.0.1:4723/wd/hub', desired_capabilities=desired_caps) driver.get_window_size() except Exception as e: self.logger.error("appium remote driver启动失败,报错信息为: %s"%e) sys.exit() return driver
# ele.click() #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 = Remote(desired_capabilities=caps, command_executor='http://127.0.0.1:4444/wd/hub') driver.implicitly_wait(10) # 没有等待 # 包名 print(driver.current_package) # 进入的activity 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
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 Base: caps = { "platformName": "Android", "platformVersion": "6.0", "deviceName": "192.168.56.101:5555", "appPackage": "com.xueqiu.android", # aapt dump badging apk "appActivity": "com.xueqiu.android.view.WelcomeActivityAlias", "noReset": False } def __init__(self, duration): self.driver = Remote( desired_capabilities=self.caps, command_executor='http://127.0.0.1:4723/wd/hub') # 初始化caps self.duration = 1000 # 滑动持续时间,单位毫秒,默认None(一般设置500-1000毫秒比较合适) def Screenshots(self, save_file_name): """ 截图(待完善) :param save_file_name: 保存的地址 :return: """ self.driver.get_screenshot_as_file(save_file_name) def find_element(self, locator): """ 单个元素定位 :param locator: 定位器 :return: 定位到的元素 """ try: ele = WebDriverWait(self.driver, timeout=20).until( EC.presence_of_element_located(locator)) return ele except Exception as e: self.Screenshots( "/Users/xiaoff/python/2020_study/appium/封装框架/screen_shot/定位问题.png" ) return '未定到到该元素', e def find_elements(self, locator): """ 元素定位有多个值 :param locator: 定位器 :return: """ try: ele = WebDriverWait(self.driver, timeout=20).until( EC.presence_of_all_elements_located(locator)) return ele except Exception as e: self.Screenshots( "/Users/xiaoff/python/2020_study/appium/封装框架/screen_shot/定位问题.png" ) return '未定到到该元素', e """----滑动-----""" def get_width(self): """ 获取屏幕的宽度 :return: """ width = self.driver.get_window_size()['width'] return width def get_height(self): """ 获取屏幕的高度 :return: """ height = self.driver.get_window_size()['height'] return height def swipe_to_right(self): """