2014-11-21 76 views
1

我要向下滚动到页面底部向下滚动页面,并做一些action.Using uiautomator我已获得以下:如何appium

index=2, 
resource-id=com.manoramaonline.arogyam:id/pager,class=android.support.v4.view.ViewPager, 
scrollable=true. 

请帮我做到这一点。

我试着用下面的code.Could任何人指出的问题?

JavascriptExecutor js = (JavascriptExecutor) driver; 
RemoteWebElement element =(RemoteWebElement)driver.findElement(By.xpath(
"//android.support.v4.view.ViewPager[@resource-id='com.manoramaonline.arogyam:id/pager']"));  
HashMap<String, String> scrollObject = new HashMap<String, String>(); 
scrollObject.put("direction", "down"); 
//i am getting error for this code 
scrollObject.put("element", element.getId()); 
js.executeScript("mobile: scroll", scrollObject); 
+0

你能添加有关您的自动化喜欢的操作系统是一些细节使用,自动化应用操作系统,你正在使用的appium版本等 – user2220762 2014-11-26 09:47:05

+0

我正在为android应用创建脚本,appium版本是AppiumForWi ndows-1.2.4.1 – Tester 2014-12-01 09:32:20

+0

我可以使用下面的代码向下滚动,WebElement element = driver.findElement(By.className(“android.widget.ScrollView”)); HashMap arguments = new HashMap (); arguments.put(“element”,((RemoteWebElement)element).getId()); ((JavascriptExecutor)驱动程序).executeScript(“mobile:scrollTo”,arguments);但得到异常信息:[debug]响应客户端错误:{“status”:13,“value”:{“message”:“处理命令时出现未知的服务器端错误。”,“origValue”:“无法将元素滚动到视图中: – Tester 2014-12-04 05:49:22

回答

0

我知道它通过以下代码工作。

WebElement element = driver.findElement(By.className("android.widget.ScrollView")); 
    Actions actions = new Actions(driver); 
    actions.moveToElement(element); 
    // actions.click(); 
    actions.perform(); 
+0

我已经尝试了代码如上所述,但我得到异常** ** org.openqa.selenium.WebDriverException:尚未实现。**,我正在使用Appium Java客户端 - 2.2和Selenium版本2.45。请问你能帮我吗? – mra419 2015-05-10 12:01:24

+0

我有使用硒版本2.44和Java客户端2.1.0。尝试在设备上运行脚本。我在设备上运行脚本。 – Tester 2015-05-18 07:11:50

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

此代码将向下滚动,你可以指定你多少次想为它通过把它变成一个for循环滚动。唯一的缺点是它是一个非特定的代码。再次,这段代码来自他们的一个github答案,正如我所提到的,Appium不能为iOS做适当的滚动。至少,我没有找到任何东西。

+0

但是,当然是一个迟到的回应,但主要涉及到驱动程序.Scroll在Appium for iOS中完全是垃圾和不起作用。此代码将向下滚动,您可以指定希望它通过将其放入for循环来滚动多少次。唯一的缺点是它是一个非特定的代码。再次,这段代码来自他们的一个github答案,正如我所提到的,Appium不能为iOS做适当的滚动。至少,我没有找到任何东西。 – SomeStudent 2015-08-04 18:41:56

+0

啊,呃。我将在当天晚些时候编辑它,目前正在工作。但我相信评论也可以解决这个问题。 – SomeStudent 2015-08-06 13:19:56

0

在近期更新appium“mobile:scroll”不推荐使用的情况下,以下代码将起作用,视频将帮助您实施。

滚动到文本:

MobileElement radioGroup = (MobileElement) wd 

.findElementByAndroidUIAutomator("new UiScrollable(new UiSelector()" 

".resourceId(\"+<listview_id>+\")).scrollIntoView(" 

"new UiSelector().text(\"+<your_text>+\"));"); 

radioGroup.click(); 

此链接将帮助您:https://www.youtube.com/watch?v=bT3tqaLNn-Y

-1
MobileElement radioGroup = (MobileElement) wd.findElementByAndroidUIAutomator(" 
    new UiScrollable(new UiSelector().resourceId(\"+<listview_id>+\")) 
     .scrollIntoView(new UiSelector().text(\"+<your_text>+\")); 
"); 
radioGroup.click(); 

方法从Manidroid作品对我来说完全