2015-08-28 63 views
5

我試着用下面的代碼上Appium成功地滾動:Appium無法在iOS上滾動8.4

// java 
JavascriptExecutor js = (JavascriptExecutor) driver; 
HashMap<String, String> scrollObject = new HashMap<String, String>(); 
scrollObject.put("direction", "down"); 
scrollObject.put("element", ((RemoteWebElement) element).getId()); 
js.executeScript("mobile: scroll", scrollObject); 

但是,我越來越想,當滾動超出的UITableView底部由於JavaScript錯誤衆所周知appium問題: https://github.com/appium/appium/issues/4836

這個問題旁邊的事實appium的isDisplayed()方法總是返回true(小區是否是在屏幕上可見)和appium無法點擊一個不可見的細胞,意味着appium無法滾動和選擇對象。

有沒有人找到解決辦法?

回答

1

所以目前看起來似乎可能沒有辦法解決這個問題。 Darshan上面提到的這個滾動問題在iOS 8.4中依然存在,而且從瀏覽互聯網看起來其他人有相同的看法

0

使用輕彈作爲可能的臨時解決方案。我們可以在屏幕上滑動,也可以在元素上滾動。我們實際上不能在UIAScrollView上彈出,但我們可以在UIACollectionView上彈出。

JavascriptExecutor js = (JavascriptExecutor) driver; 
HashMap scrollObject = new HashMap(); 
scrollObject.put("direction", "down"); 
js.executeScript("mobile: scroll", scrollObject); 

解決與isDisplayed問題()總是如此,你可以嘗試

if(!driver.findElements(By.name(using)).isEmpty()) { 
... 
} 

替換「使用」你的定位,我也覺得這個滾動的問題必須要解決由Appium移動:滾動,並且你的代碼看起來很好,你也可以嘗試使用垂直滑動而不是滾動。

+0

Darshan,這是使用'mobile:scroll'是否正確?似乎非常類似於我在問題中的原始代碼? –

+1

我認爲他們從8.3解決了這個滾動問題,但它仍然存在於8.4中,我們需要找到一些替代方案。 –

+0

嗨Darshan。感謝更新的答案 - 將會給你一個答案。垂直滑動需要什麼代碼(而不是手機:滾動)? –