欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Appium中scroll和drag_and_drop根據(jù)元素位置滑動(dòng)

 更新時(shí)間:2022年02月15日 15:21:26   作者:測(cè)試之路king  
本文主要介紹了Appium中scroll和drag_and_drop根據(jù)元素位置滑動(dòng),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

背景

我們?cè)诓僮鰽PP應(yīng)用時(shí),有些需要從一個(gè)元素滑動(dòng)到另外一個(gè)元素時(shí),這時(shí)候我們無(wú)法確定坐標(biāo),所以swipe 根據(jù)坐標(biāo)滑動(dòng)方式就無(wú)法使用了,如下圖:從 課堂直播 上滑到 直播公開(kāi)課 位置

在這里插入圖片描述


這時(shí)候我們就需要使用其他滑動(dòng)方式,我們想到可以根據(jù)元素進(jìn)行滑動(dòng),Appium 里面根據(jù)元素來(lái)進(jìn)行滑動(dòng)的方式主要方法為 scrolldrag_and_drop

scroll 介紹

說(shuō)明

從一個(gè)元素滾動(dòng)到另一個(gè)元素,只能是兩個(gè)元素之間的滑動(dòng)。

方法詳情

def scroll(self: T, origin_el: WebElement, destination_el: WebElement, duration: Optional[int] = None) -> T:
        """Scrolls from one element to another

        Args:
            origin_el: the element from which to being scrolling
            destination_el: the element to scroll to
            duration: a duration after pressing originalEl and move the element to destinationEl.
                Default is 600 ms for W3C spec. Zero for MJSONWP.

        Usage:
            driver.scroll(el1, el2)

        Returns:
            Union['WebDriver', 'ActionHelpers']: Self instance
        """

        # XCUITest x W3C spec has no duration by default in server side
        if self.w3c and duration is None:
            duration = 600

        action = TouchAction(self)
        if duration is None:
            action.press(origin_el).move_to(destination_el).release().perform()
        else:
            action.press(origin_el).wait(duration).move_to(destination_el).release().perform()
        return self

參數(shù):

  • origin_el - 要滾動(dòng)的起始元素
  • destination_el - 要滾動(dòng)到的結(jié)束元素
  • duration - 持續(xù)時(shí)間,單位毫秒,默認(rèn)為 600 ms

操作場(chǎng)景

  • 進(jìn)入網(wǎng)易云首頁(yè)
  • 從課堂直播滑動(dòng)到直播公開(kāi)課位置

關(guān)鍵代碼實(shí)現(xiàn)

# 定位到課堂直播元素
el1 = driver.find_element(AppiumBy.XPATH, "http://*[@text='課堂直播']").click()

# 定位到直播公開(kāi)課元素
el2 = driver.find_element(AppiumBy.XPATH, "http://*[@text='直播公開(kāi)課']").click()

# 執(zhí)?滑動(dòng)操作
driver.scroll(el1,el2)

說(shuō)明

操作過(guò)程有 慣性,需要添加duration參數(shù),參數(shù)值越大,慣性越小。

drag_and_drop 介紹

說(shuō)明

從一個(gè)元素滑動(dòng)到另一個(gè)元素,第二個(gè)元素代替第一個(gè)元素原本屏幕上的位置。

方法詳情

def drag_and_drop(self: T, origin_el: WebElement, destination_el: WebElement) -> T:
        """Drag the origin element to the destination element

        Args:
            origin_el: the element to drag
            destination_el: the element to drag to

        Returns:
            Union['WebDriver', 'ActionHelpers']: Self instance
        """
        action = TouchAction(self)
        action.long_press(origin_el).move_to(destination_el).release().perform()
        return self

參數(shù):

  • origin_el - 要滑動(dòng)頁(yè)面的起始元素
  • destination_el - 要滑動(dòng)頁(yè)面到結(jié)束元素

操作場(chǎng)景

  • 進(jìn)入網(wǎng)易云首頁(yè)
  • 從課堂直播滑動(dòng)到直播公開(kāi)課位置

關(guān)鍵代碼實(shí)現(xiàn)

# 定位到課堂直播元素
el1 = driver.find_element(AppiumBy.XPATH, "http://*[@text='課堂直播']").click()

# 定位到直播公開(kāi)課元素
el2 = driver.find_element(AppiumBy.XPATH, "http://*[@text='直播公開(kāi)課']").click()

# 執(zhí)?滑動(dòng)操作
driver.drag_and_drop(el1,el2)

說(shuō)明

不能設(shè)置持續(xù)時(shí)間,沒(méi)有慣性

滑動(dòng)和拖拽使用場(chǎng)景選擇

滑動(dòng)和拖拽無(wú)非就是考慮是否具有“慣性”,以及傳遞的參數(shù)是“元素”還是“坐標(biāo)”。

  • scroll:有 “慣性” ,傳入 “元素”,可以通過(guò)設(shè)置duration參數(shù)來(lái)進(jìn)行控制慣性大小
  • drag_and_drop:無(wú) “慣性” ,傳入 “元素”
  • swipe:有 “慣性” ,傳入 “坐標(biāo)”,可以通過(guò)設(shè)置duration參數(shù)來(lái)進(jìn)行控制慣性大小

說(shuō)明: 添加duration參數(shù),參數(shù)值越大,慣性越小

到此這篇關(guān)于Appium中scroll和drag_and_drop根據(jù)元素位置滑動(dòng)的文章就介紹到這了,更多相關(guān)Appium 元素滑動(dòng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python操作MySQL數(shù)據(jù)庫(kù)的方法

    Python操作MySQL數(shù)據(jù)庫(kù)的方法

    pymsql是Python中操作MySQL的模塊,其使用方法和MySQLdb幾乎相同。接下來(lái)通過(guò)本文給大家介紹Python操作MySQL數(shù)據(jù)庫(kù)的方法,感興趣的朋友一起看看吧
    2018-06-06
  • Pytorch中使用TensorBoard詳情

    Pytorch中使用TensorBoard詳情

    這篇文章主要介紹了Pytorch中使用TensorBoard詳情,TensorBoard的前段數(shù)據(jù)顯示和后端數(shù)據(jù)記錄是異步I/O的,即后端程序?qū)?shù)據(jù)寫(xiě)入到一個(gè)文件中,而前端程序讀取文件中的數(shù)據(jù)來(lái)進(jìn)行顯示
    2022-06-06
  • 利用python模擬實(shí)現(xiàn)POST請(qǐng)求提交圖片的方法

    利用python模擬實(shí)現(xiàn)POST請(qǐng)求提交圖片的方法

    最近在利用python做接口測(cè)試,其中有個(gè)上傳圖片的接口,在網(wǎng)上各種搜索,各種嘗試。下面這篇文章主要給大家介紹了關(guān)于利用python模擬實(shí)現(xiàn)POST請(qǐng)求提交圖片的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-07-07
  • python3的map與reduce實(shí)例詳解

    python3的map與reduce實(shí)例詳解

    這篇文章主要介紹了Python3中map()、reduce()、filter()的用法詳解,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • Python中NumPy的數(shù)組拆分

    Python中NumPy的數(shù)組拆分

    這篇文章主要介紹了Python中NumPy的數(shù)組拆分,我們使用array_split()分割數(shù)組,將要分割的數(shù)組和分割數(shù)傳遞給它,如果將一個(gè)數(shù)組拆分為 3 個(gè)數(shù)組,則可以像使用任何數(shù)組元素一樣從結(jié)果中訪問(wèn)它們,需要的朋友可以參考下
    2023-07-07
  • pytorch部署到j(luò)upyter中的問(wèn)題及解決方案

    pytorch部署到j(luò)upyter中的問(wèn)題及解決方案

    這篇文章主要介紹了pytorch部署到j(luò)upyter中,在這里需要注意我再輸入的時(shí)候出現(xiàn)了一些無(wú)法定位的提示,但是我的電腦沒(méi)有影響使用jupyter,還是可以使用jupyter并且可以import torch,本文給大家講解的非常詳細(xì),需要的朋友參考下吧
    2022-05-05
  • Python+Qt相片更換背景顏色窗體程序的步驟詳解

    Python+Qt相片更換背景顏色窗體程序的步驟詳解

    QT+Python是非常經(jīng)典的窗體編程組合,功能完善,可視化界面美觀易維護(hù),這篇博客針對(duì)相片更換背景顏色方面編寫(xiě)代碼,代碼整潔,規(guī)則,易讀,對(duì)學(xué)習(xí)與使用Python有較好的幫助,需要的朋友可以參考下
    2022-12-12
  • 詳解Python的hasattr() getattr() setattr() 函數(shù)使用方法

    詳解Python的hasattr() getattr() setattr() 函數(shù)使用方法

    這篇文章主要介紹了詳解Python的hasattr() getattr() setattr() 函數(shù)使用方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • Python collections模塊的使用方法

    Python collections模塊的使用方法

    這篇文章主要介紹了Python collections模塊的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 淺談Python中的模塊

    淺談Python中的模塊

    這篇文章主要介紹了Python中的模塊相關(guān)知識(shí),文中代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06

最新評(píng)論