最近作移動端H5頁面的自動化測試時候,須要模擬一些上拉,下滑的操做,最初考慮使用使用selenium ActionChains來模擬操做,可是ActionChains 只是針對PC端程序鼠標模擬的一系列操做對H5頁面操做時無效的,後來閱讀了下selenium的文檔發現TouchAction能夠對移動端頁面自動化操做;html
首先使用TouchAction的時候首先須要在頭上引入該模塊python
from selenium.webdriver.common.touch_actions import TouchActions
經過scroll_from_element、flick_element 方法來實現下拉操做web
由於咱們模擬的是移動端的H5自動化測試,首先須要咱們將瀏覽器設置成爲手機瀏覽器;chrome
1.以元素爲起點以必定速度向下滑動,實現下拉操做瀏覽器
注意:測試
向上滑動爲負數,向下滑動爲正數spa
# -*- coding: utf-8 -*- # @Time : 2017/12/28 10:26 # @Author : Hunk # @File : ex86.py.py # @Software: PyCharm import time from selenium import webdriver from selenium.webdriver.common.touch_actions import TouchActions """設置手機的大小""" mobileEmulation = {'deviceName': 'Apple iPhone 5'} options = webdriver.ChromeOptions() options.add_experimental_option('mobileEmulation', mobileEmulation) driver = webdriver.Chrome(chrome_options=options) driver.get('http://m.test.90dichan.com') driver.maximize_window() """定位操做元素""" button = driver.find_element_by_xpath('//*[@id="pullrefresh"]/div[2]/ul/li[2]/a/div[2]/span') time.sleep(3) Action = TouchActions(driver) """從button元素像下滑動200元素,以50的速度向下滑動""" Action.flick_element(button, 0, 200, 50).perform() time.sleep(3) driver.close()
2.以元素爲起點向下滑動,實現下拉操做code
注意:orm
向下滑動爲負數,向上滑動爲正數htm
# -*- coding: utf-8 -*- # @Time : 2017/12/28 10:26 # @Author : Hunk # @File : ex86.py.py # @Software: PyCharm import time from selenium import webdriver from selenium.webdriver.common.touch_actions import TouchActions """設置手機的大小""" mobileEmulation = {'deviceName': 'Apple iPhone 5'} options = webdriver.ChromeOptions() options.add_experimental_option('mobileEmulation', mobileEmulation) driver = webdriver.Chrome(chrome_options=options) driver.get('http://m.test.90dichan.com') driver.maximize_window() """定位操做元素""" button = driver.find_element_by_xpath('//*[@id="pullrefresh"]/div[2]/ul/li[2]/a/div[2]/span') time.sleep(3) Action = TouchActions(driver) """從button元素像下滑動200元素""" Action.scroll_from_element(button, 0, -200).perform() time.sleep(3) driver.close()
下面咱們看下下拉的效果
下面看一下TouchAction提供的其餘那些方法:
其實上述的部分方法與ActionChains 中的鼠標操做很類似,因爲與鼠標操做的書寫方法一致的,因此在這裏不詳細介紹,具體書寫方法你們能夠參考下【python selenium-webdriver 元素操做之鼠標操做(四)】內容,下面咱們主要來介紹下移動的操做。