首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Appium如何在WebView中进行水平滑动

问Appium如何在WebView中进行水平滑动
EN

Stack Overflow用户
提问于 2017-09-07 06:37:45
回答 3查看 823关注 0票数 0

我使用的是5.0.2 Java-client for Appium,但我无法使用以下代码执行水平滑动:

touchAction.press(startX, startY).moveTo(endX, startY).release().perform();

我在Android上自动化一个离子应用程序。有人知道我怎么刷卡吗?

注意:我确实将上下文切换到WEBVIEW以与应用程序交互,然后返回到NATIVE_APP上下文以使用TouchAction。

EN

回答 3

Stack Overflow用户

发布于 2017-09-07 19:37:13

我用的是“driver.swpe”,touchAction不适合我的网页应用……

Python代码:

代码语言:javascript
复制
# Screen movement is left -> right (element is hidden at the right of the screen)
# I have a list of items (all the same) and I move 1 by 1
startX = selected.size['width']
# 'Y' coordinate in this case is the middle of the element
startY = selected.location['y'] + (selected.size['height']/2)
# This will move from startX, startY, to 1, startY in a duration of 400
driver.swipe(startX , startY, 1, startY , 400)

# Screen movement is right -> left (element is hidden at the left of the screen)
driver.swipe(1, startY, startX, startY , 400)

只是为了记录..。正如我所说,对于我来说,它不适用于touchAction,而对于touchAction,它不是这样的:

代码语言:javascript
复制
driver.swipe(startX , startY, 1, startY...)

就像是

代码语言:javascript
复制
touchAction.press(startX, startY).move_to((startX*-1), 0).release().perform() 

这是为了让你认为这是累积的.你move_to尊重你按的地方..。

我的意思是,你没有指定你想要移动到哪里的坐标...从原点(startX和startY)指定从这些坐标水平和垂直移动多少...

我猜在Java中会是这样的:

代码语言:javascript
复制
# You can change swipe duration to whatever value you want (Milliseconds)
# Screen movement is left -> right 
driver.swipe(startX, startY, 1, startY, 400);
# Screen movement is right -> left
driver.swipe(1, startY, startX, startY, 400);
票数 0
EN

Stack Overflow用户

发布于 2017-09-20 07:30:11

我可以使用swipe injecting css样式:

代码语言:javascript
复制
int width = ((Long) js.executeScript("return window.innerWidth || document.body.clientWidth")).intValue();
js.executeScript("arguments[0].style.cssText = \"position: absolute; left: -"+ width+"px;\";", element);

不确定这是否正确,但对我来说是有效的。

此外,使用css转换也可以:

代码语言:javascript
复制
js.executeScript("arguments[0].style.cssText = \"position: absolute; transform: translateX(-100%)\";", element);
票数 0
EN

Stack Overflow用户

发布于 2017-09-24 01:21:45

我以前遇到过类似的问题,并执行了以下步骤来解决这些问题。

  1. 请确保您选择的开始和结束坐标位于屏幕的可滚动区域上。
  2. 另外,请尝试使用新的实例,而不是使用已存在的TouchAction实例。我还没有找到一个解释为什么这对我有效。

新的TouchAction(驱动程序).press(startX、startY).moveTo(endX、

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46085288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档