1. 程式人生 > >關於appium+python TouchAction提示錯誤:The coordinates provided to an interactions operation are invalid

關於appium+python TouchAction提示錯誤:The coordinates provided to an interactions operation are invalid

今天做自動化解鎖9宮格,發現swipe不能滿足需求,於是用TouchAction去實現手勢滑動,這裡先給出我寫的程式碼:

TouchAction(self.driver).press(x=299, y=744).wait(100)\
    .move_to(x=483, y=0).wait(100)\
    .move_to(x=-483, y=501).wait(100)\
    .move_to(x=483, y=0).wait(100).release().perform()
根據UIAutomatorViewer抓到的座標,我的座標滑動需求是(299,744)—>(782,744)—>(299,1245)—>(782,1245)
這個走勢也就是一個“Z”字形的解鎖路線。
這裡給出move_to的程式碼:
def move_to(self, el=None, x=None, y=None):
    """Move the pointer from the previous point to the element or point specified
    """
    self._add_action('moveTo', self._get_opts(el, x, y))

    return self
然後我執行我的程式碼之後還是報錯:
The coordinates provided to an interactions operation are invalid.
提示說我的座標無效,但是我確實填寫的沒有問題。然後我去翻看appium服務的log:
從log看出,前面的座標操作都是沒有問題的,“Z”字可以正常畫出來,但是最後touchUp的時候失敗了,居然識別

的是一箇中間的偏移座標值做touchUp,正好我這個偏移值還是負數,不在bounds裡面,所以提示出錯了。

這裡先不討論原因,我改動程式碼之後就OK了,我貼出改動後的程式碼:

TouchAction(self.driver).press(x=299, y=744).wait(100)\
    .move_to(x=483, y=0).wait(100)\
    .move_to(x=-483, y=501).wait(100)\
    .move_to(x=483, y=0).wait(100).release().wait(100).perform()

標紅的地方就是改動點,我僅僅是在release()後面加了一個wait就保證了touchUp正常執行

就能正常在最後一個點touchUp。

具體原因我不在此詳細分析,感興趣的可以去分析appium底層是怎麼執行的

相關推薦

關於appium+python TouchAction提示錯誤The coordinates provided to an interactions operation are invalid

今天做自動化解鎖9宮格,發現swipe不能滿足需求,於是用TouchAction去實現手勢滑動,這裡先給出我寫的程式碼: TouchAction(self.driver).press(x=299,

解決Python3安裝turtle提示錯誤Command "python setup.py egg_info" failed with error code 1

pip install turtle 出現 可以選擇升級 setuptools pip install --upgrade setuptools   升級完成後,還是會出現錯誤的話,就手動選擇更改檔案 按照給定的連結,下載turtle包,手動解壓,修改setu

已解決執行python manage.py makemigrations時提示錯誤__init__() missing 1 required positional argument: 'on

 報錯資訊如下: (blog) λ python manage.py makemigrations Traceback (most recent call last): File "manage.py", line 15, in <module> e

TCP網路除錯助手提示錯誤“1035未知錯誤” connect() failed: The socket is marked as nonblocking and the reque

socket程式設計。在虛擬機器中寫了服務端的程式碼(Linux系統),跟別的電腦可以連通,但是自己在Win10中用除錯助手和虛擬機器中的服務端沒法連通(但是除錯助手做服務端,Linux做客戶端可以連通,我暫時還不知道是為什麼)。 直接上圖: 我之前參考了CSDN

解決Python3安裝turtle提示錯誤Command "python setup.py egg_info" failed with error code 1

pip install turtle 出現 可以選擇升級 setuptools pip install --upgrade setuptools 升級完成後,還是會出現錯誤的話,就手動選擇更改檔案 按照給定的連結,下載turtle包,手動解壓,修改setup

已解決執行python manage.py makemigrations時提示錯誤__init__() missing 1 required positional argument: 'on

 報錯資訊如下: (blog) λ python manage.py makemigrations Traceback (most recent call last): File "manage.py", line 15, in <module> execute

解決Eclipse匯入專案是提示錯誤Some projects cannot be imported because they already exist in the workspace

http://blog.csdn.net/limenghua9112/article/details/44698297 以前老是有這個問題,一直沒有注意,今天決定要搜下解決下,在國外的網站上看到個小竅門,分享給大家!  問題: 一般情況下都是專案已經在工作空間路徑下了

MyBatis錯誤The server time zone value '?泄???????' is unrecognized or represents more t

mysq exce xxxxx 解決 技術 name 差異 錯誤 href 原文地址:http://blog.csdn.net/oppo5630/article/details/52162783 解決java.sql.SQLException: The server ti

git pull 錯誤The following untracked working tree files would be overwritten by merge

seekbar change ora uil KS dex output con 方法 錯誤描述: $ git pull origin alphaFrom https://github.com/shirley-wu/HeartTrace * branch

eclipse提示錯誤save could not be completed

這是經常出現的一種錯誤 錯誤提示:Save could not be completed try file save as if the problem persists.      Reason: could not write file 原因:eclipse使用

Ubuntu 提示錯誤E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)

Ubuntu 用apt-get安裝提示錯誤: E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) E: Unable to lock the administration d

java錯誤The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

java錯誤:The superclass “javax.servlet.http.HttpServlet” was not found on the Java Build Path 我們在用Eclipse進行Java web開發時,可能會出現這樣的錯誤:The superclass j

錯誤The superclass "javax.servlet.xxx" was not found on the Java Build Path

當一個Java Web專案從一臺電腦移到另一臺電腦時,個人感覺環境都一致,但是就是在使用的時候出現一些小紅叉,特別是在一些jsp頁面出現最多: 如:The superclass "javax.servlet.http.HttpServlet" was not found on the Jav

Angular5 tslint錯誤The selector of the component “XXXComponent” should be used as element

錯誤描述 在專案中自己封裝了一個 select 元件 @Component({ selector: '[app-choosen-select]', templateUrl: './selectcommon.component.html', styleUrls: ['./style.

啟動Hadoop 2.8.5遇到的錯誤The ServiceName: mapreduce.shuffle set in yarn.nodemanager.aux-services is invalid.

問題:   yarn-site.xml配置: <?xml version="1.0"?> <configuration> <property> <name>yarn.resourcemanager

dism RestoreHealth 和 CheckHealth選項時提示錯誤87

具體命令是: dism /online /cleanup-image /restorehealth dism /online /cleanup-image /checkhealth 修復系統檔案時,用到這兩個命令。 作業系統:win7 錯誤提示: 錯誤:87

Apicloud_(問題)P54提示錯誤Uncaught SyntaxError: Unexpected token ) at main.html : 117

      《30天App開發從0到1:APICloud移動開發實戰》第54頁   開啟main.html,在apiready中新增一段程式碼 api.addEventListener({ name: 'citySelected' }, function(ret, e

Eclipse匯入新的tomcat時提示錯誤Unknown version of Tomcat was specified

最近開啟以前寫的一個專案時,開始總是報HttpServlet的錯誤,一看就想到了了沒有在工程裡匯入Tomcat,但是開啟: Build Path->Add Libraries,發現是有Tomcat的,於是就去Window -->Preferences-->

C#操作SQLite資料庫時出錯總結--錯誤“Insufficient parameters supplied to the command”

上網找了好久,有的說是引數名字錯了,有的說把"@parameter"改成"?"就可以了。 解決C#操作SQLite資料庫時出現“Insufficient parameters supplied to the command”的錯誤 將如下SQL語句: insert in

VS建立Qt專案時,Include提示錯誤無法開啟原始檔

我使用的版本 是VS2010 和 Qt5.5.1 新建專案時顯示瞭如下錯誤,但是並不影響編譯 解決方案: 右擊解決方案 —>屬性(到達專案屬性頁面)—>配置屬性(左側) —>C/C++ —> 常規—> 附加包含目錄。 將Qt的Incl