Appium + Python自动化测试学习之七:Scroll滑动页面操作实例

Appium 中webdriver提供scroll()方法来滚动页面,不过不是滑动滚动条,而是获取两个元素后,从一个元素滚动到另一个元素。

scroll的方法简介:

scroll(self, origin_el, destination_el, duration=None):

参数:
          - originalEl - 开始要滚动的元素
          - destinationEl - 要滚动到的元素
          - 即从元素origin_el滚动至元素destination_el
          - duration 即滚动的持续时间
用法: driver.scroll(el1,el2)

讲解实例
如下图所示,用scroll方法实现从“物理”元素滚动到“语文”元素。
Appium + Python自动化测试学习之七:Scroll滑动页面操作实例_第1张图片

from appium import webdriver
from time import sleep
import os
from selenium.webdriver.support.wait import WebDriverWait

desired_caps={
   'platformName':'Android',
   'platformVersion':'6.0.1',
   'deviceName':'127.0.0.1:21503',
   'appPackage':'com.baidu.homework',
   'appActivity':'com.baidu.homework.activity.index.IndexActivity',
    'automationName':'Appium',
    'noReset':False
}

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

driver.find_element_by_xpath("//*[@class='android.widget.RelativeLayout' and @index='3']").click()

sleep(10)
def taptest(driver):
    # 设定系数,控件在当前手机的坐标位置除以当前手机的最大坐标就是相对的系数了
    a1 = 536/1073
    b1 = 1542/1916
    # 获取当前手机屏幕大小X,Y
    X = driver.get_window_size()['width']
    Y = driver.get_window_size()['height']
    # 屏幕坐标乘以系数即为用户要点击位置的具体坐标
    driver.tap([(a1*X, b1*Y)])
#处理广告弹窗
taptest(driver)
sleep(1)
WebDriverWait(driver,100).until(lambda x :x.find_element_by_accessibility_id('全部分类')).click()

def scroll_page():
	#获取【语文】、【物理】两个元素,将页面从语文向物理滑动,即从右向左滑动
	stop_element=driver.find_element_by_accessibility_id('语文')
	start_element=driver.find_element_by_accessibility_id('物理')
	driver.scroll(start_element,stop_element,3000)


if __name__ == '__main__':
    scroll_page()

注意: scroll() 与swipe()的区别,swipe是可以根据自己需要设置滑动的距离,而scroll是根据页面中两个元素位置距离进行滑动。

swipe请参考博客:swipe滑屏操作实例

你可能感兴趣的:(Appium,selenium,android,软件测试)