我使用5.0.2 Java-client for Appium但我无法使用此功能执行水平滑动:
User.find(id)
我在Android上自动化Ionic应用程序。 有人知道我怎么做Swipe?
注意:
我将上下文切换为touchAction.press(startX, startY).moveTo(endX, startY).release().perform();
以与应用互动,然后我返回WEBVIEW
上下文以使用NATIVE_APP
。
答案 0 :(得分:0)
我用' driver.swipe'做了这件事,使用网络应用程序,touchAction对我不起作用......
Python代码:
# 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,它不像:
driver.swipe(startX , startY, 1, startY...)
就像
touchAction.press(startX, startY).move_to((startX*-1), 0).release().perform()
这只是为了考虑这是累积的......你move_to尊重你所按的地方......
我的意思是,你没有指定你要移动到的坐标...你从原点(startX和startY)指定,从这些坐标水平和垂直移动多少...... < / p>
我想在Java中会是这样的:
# 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);
答案 1 :(得分:0)
我能够刷卡注入css样式:
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转换工作:
js.executeScript("arguments[0].style.cssText = \"position: absolute; transform: translateX(-100%)\";", element);
答案 2 :(得分:0)
我以前遇到过类似的问题,并采取了以下步骤来解决问题。
请确保您选择的开始和结束坐标位于屏幕的可滚动区域。
此外,请尝试使用新的TouchAction实例,而不是使用现有的TouchAction实例。我还没有找到解释为什么这对我有用。
new TouchAction(driver).press(startX,startY).moveTo(endX,startY)。release()。perform();