appium+python实战三:一些API的使用

1、切换为横屏

#切换横屏
    def switch_landscape(self):
        self.driver.orientation = 'LANDSCAPE'

2、切换为竖屏

#切换横屏
    def switch_portrait(self):
        self.driver.orientation = 'PORTRAIT'

3、获取设备横竖屏状态

orientation = self.driver.orientation

切换横竖屏需注意,切换后系统的“自动锁定”会被选中。
截图:

    def screenshot_to_landscape(self,picture_name):
        self.driver.save_screenshot('../../images/landscape/'+picture_name+'.png')
        Log.log().debug('截图成功')

在代码中我选择将上面部分置为BasePage里,上层代码直接调用即可,调用时传入图片名,避免后续图片存储路径改变时改动地方过多。appium截图是有四个方法,如下:
save_screenshot() 该方法直接保存当前屏幕截图到当前脚本所在文件位置。若指定具体路径的话同样也可以保存在指定文件夹里,看源码就能知道最后返回的也是调用asfile方法的。(文件夹必须存在,否则保存失败)。
get_screenshot_as_file(self, filename):将截图保存到指定的文件夹路径(同样文件夹必须存在,否则失败)。
另外两个截图方法保存的是二进制数据,很少用到。截图可以用在发生异常后截图。

4、判断元素是否存在

如果要判断某个元素是否展示,可以通过self.driver.page_source获取当前页面的全部元素,再判断是否存在某个。这样就能实现一些特定的点击操作。比如,一个面板,未显示时点击按钮后弹出显示,若已显示点击按钮后面板消失。我们若要想要获取面板上的元素则必须保持面板展示,但面板的展示和收起都是点击同一个button,因此,在点击操作前,先获取面板是否已展示,若展示则不进行点击,若未展示则点击按钮调起面板,再进行后续的操作。

    def choose_format(self,num):
        element = self.driver.page_source
        if 'android.widget.GridView' in element:
            el = self.driver.find_elements_by_xpath('//android.widget.GridView//android.widget.FrameLayout')
            el[num].click()
        else:
            self.by_xpath('//*[@text="版式"]').click()
            el = self.driver.find_elements_by_xpath('//android.widget.GridView//android.widget.FrameLayout')
            el[num].click()

5、拖动进度条

        def set_process(self,num):
        elemment = self.by_id("cn.wps.moffice_eng:id/watermark_textsize_progress")
        # 获取拖动条的宽
        width = elemment.size.get('width')
        #获取进度条坐标
        x = elemment.location.get('x')
        y = elemment.location.get('y')
        #精度需要自己调
        process = self.driver.swipe(x, y, int(width * num), y, 1000)

利用左右滑动来实现拖动进度条。

6、长按元素

action = TouchAction(self.driver)
action.long_press(element,duration=5).perform()

7、获取屏幕宽度或高度

device_width = driver.get_window_size()['width']
device_height = driver.get_window_size()['height']

8、获取屏幕坐标

driver.get_window_position()['x']
driver.get_window_position()['y']

9、获取元素的宽高

self.driver.find_element_by_class_name(class_name).size

#源码中size的形式为:
new_size = {"height": size["height"],
                    "width": size["width"]}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值