Пример #1
0
 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
Пример #2
0
# 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)
Пример #3
0
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
Пример #4
0
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()
Пример #5
0
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):
        """