appium python 打开通知栏_Python&Appium实现滑动引导页进入APP

最近在研究安卓APP的自动化测试。首先遇到的问题是,当一个session建立的时候,最先进入的是欢迎页和引导页,引导页有三张,最后一张上显示“enter”按钮,点击才能进入主界面。

欢迎页加引导页,这两个页面是每次进入APP都无法避免的,如何通过代码执行跳过它们进入主界面的操作呢?

1、建立session

def test_enterApp(self):

desired_caps = {}

desired_caps['platformName'] = 'Android'

desired_caps['platformVersion'] = '4.4.4'

desired_caps['app'] = '/Users/a140/Downloads/app.apk'

desired_caps['deviceName'] = '03083025d0250909'

self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

self.driver.implicitly_wait(5)

2、运用代码模拟手指从右向左滑动的操作

#获取屏幕宽度和高度

def getSize(self):

x = self.driver.get_window_size()['width']

y = self.driver.get_window_size()['height']

return (x, y)

#向左滑动

def swipeLeft(self):

l = self.getSize()

x1 = int(l[0] * 0.9)

y1 = int(l[1] * 0.5)

x2 = int(l[0] * 0.1)

self.driver.swipe(x1, y1, x2, y1)

因为手机屏幕的尺寸多样,所以这里不设置固定的宽度和高度的值,而是封装了一个获取屏幕宽高度的方法,通过它计算屏幕滑动的坐标和距离。

3、调用swipeLeft()方法向左滑动,最后通过find_element_by_id()找到“enter”按钮,然后点击进入主界面

#向左滑动跳过引导页

x = 0

while x < 3:

self.swipeLeft()

x += 1

enterApp = self.driver.find_element_by_id("com.app.night:id/enter")

enterApp.click()

完整的代码如下所示:

import unittest

from appium import webdriver

class HelloWorld(unittest.TestCase):

def test_enterFilter(self):

desired_caps = {}

desired_caps['platformName'] = 'Android'

desired_caps['platformVersion'] = '4.4.4'

desired_caps['app'] = '/Users/a140/Downloads/app.apk'

desired_caps['deviceName'] = '03083025d0250909'

self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

self.driver.implicitly_wait(5)

#向左滑动跳过引导页

x = 0

while x < 3:

self.swipeLeft()

x += 1

enterApp = self.driver.find_element_by_id("com.app.night:id/enter")

enterApp.click()

#获取屏幕宽度和高度

def getSize(self):

x = self.driver.get_window_size()['width']

y = self.driver.get_window_size()['height']

return (x, y)

#向左滑动

def swipeLeft(self):

l = self.getSize()

x1 = int(l[0] * 0.9)

y1 = int(l[1] * 0.5)

x2 = int(l[0] * 0.1)

self.driver.swipe(x1, y1, x2, y1)

if __name__ == '__main__':

suite = unittest.TestLoader().loadTestsFromTestCase(HelloWorld)

unittest.TextTestRunner(verbosity=2).run(suite)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值