我是Appium自动化的新手。我试图在Android设备屏幕上执行滑动,下面的代码不起作用
JavascriptExecutor js = (JavascriptExecutor) driver;
HashMap<String, Double> swipeObject = new HashMap<String, Double>();
swipeObject.put("startX", 0.95);
swipeObject.put("startY", 0.5);
swipeObject.put("endX", 0.05);
swipeObject.put("endY", 0.5);
swipeObject.put("duration", 2.0);
js.executeScript("mobile: swipe", swipeObject);
或
JavascriptExecutor js = (JavascriptExecutor) driver;
HashMap<String, Double> swipeObject = new HashMap<String, Double>();
swipeObject.put("startX", 600.00);
swipeObject.put("startY", 685.00);
swipeObject.put("endX", 198.00);
swipeObject.put("endY", 550.00);
swipeObject.put("duration", 2.0);
js.executeScript("mobile: swipe", swipeObject);;
抛出错误
org.openqa.selenium.WebDriverException: Not yet implemented. Please help us: http://appium.io/get-involved.html (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 16 milliseconds
Build info: version: '2.35.0', revision: '8df0c6b', time: '2013-08-12 15:43:19'
System info: os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_25'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
如果滑动有任何替代方法,请提供链接。
提前致谢。
答案 0 :(得分:4)
请使用(下面的代码将从左到右滑动表格)
driver.context("NATIVE_APP");
Dimension size = driver.manage().window().getSize();
int startX = (int)(size.width * 0.10);
int endX = (int)(size.width * 0.80);
int startY = size.height/2;
driver.swipe(startX, startY, endX, startY, 1000);
答案 1 :(得分:1)
在红宝石郎: 滑动(start_x:0.5,start_y:0.5,end_x:0.5,end_y:0.5,持续时间:6)对我有效。
在java中你可以使用&#34; swipe&#34; TouchShortcuts界面中的方法。请参考http://appium.github.io/java-client/。
答案 2 :(得分:0)
你应该使用driver.swipe(0.95,0.5,0.05,0.5,2.0),因为其他手势但不支持:scroll / scrollTo不推荐使用。
https://github.com/appium/appium/blob/master/docs/en/advanced-concepts/migrating-to-1-0.md 特别值得注意的是,手势方法已被新的TouchAction / MultiAction API所取代,这种API允许将手势自动化放在一起的更强大和通用的方法。有关TouchAction / MultiAction的使用说明,请参阅Appium客户端。
您可以在此处查看更多信息:https://github.com/appium/appium/issues/4199
答案 3 :(得分:0)
driver.swipe(435,396,112,496,900);这是在Android设备中滚动屏幕的最佳方式。
答案 4 :(得分:0)
在Java中,我使用AndroidDriver下面的代码
androidDriver = new AndroidDriver(capabilities);
WebElement element = androidDriver.findElement(By.xpath(locator));
String originalContext = androidDriver.getContext();
int bottomY = element3.getLocation().getY();
int bottomX = element3.getLocation().getX();
androidDriver.context("NATIVE_APP");
androidDriver.swipe(28, 550, 28, 1, 900);
androidDriver.context(originalContext);
我只改变x&amp; y坐标用于修改。可能需要改进以适应不同的屏幕尺寸,但这有效。