我正在使用Java和Appium 1.2.0自动化原生Android应用程序.我想自动长按列表中的一行以显示一些可通过长按访问的选项,现在我手动测试它.这是我尝试过的:
WebDriverWait wait = new WebDriverWait(driver, 30);
HashMap<String,String> longtapObj= new HashMap<String,String>();
WebElement elem = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//android.widget.ListView[1]/android.widget.RelativeLayout[1]")));
JavascriptExecutor js = (JavascriptExecutor) driver;
longtapObj.put("element", ( (RemoteWebElement) elem).getId() );
js.executeScript("mobile:longClick", longtapObj);
Run Code Online (Sandbox Code Playgroud)
Appium服务器日志错误:
2014-09-02T23:29:45.808Z - debug:收到params的请求:{"args":[{"element":"5"}],"script":"mobile:longClick"} 2014-09-02T23 :29:45.810Z - debug:响应客户端没有实现方法
2014-09-02T23:29:45.810Z - 信息:< - POST/wd/hub/session/f66d9550-c47e-4380-a0f4-c819a12f59a9 /执行501 3.656 ms - 158
2014-09-02T23:29:48.518Z - info: - > GET/wd/hub/status {}
Eclipse JUnit错误:
org.openqa.selenium.WebDriverException:尚未实现.请帮助我们:http://appium.io/get-involved.html(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:9毫秒
如果注释掉js.executeScript语句("mobile:longClick",longtapObj); 没有错误被抛出.感谢是否有人知道在本机Android应用程序中使用Appium实现日志记录的正确方法.
小智 5
JavascriptExecutor js = (JavascriptExecutor) driver;
HashMap<String, String> longTapObject = new HashMap<String, String>();
longTapObject.put("element",((RemoteWebElement)w1).getId());
js.executeScript("mobile: longClick", longTapObject);
Run Code Online (Sandbox Code Playgroud)
以上代码适用于Java Appium 1.2.4.1版