我试图使用Appium 1.6在iOS 10上的某个特定元素上向左滑动,以显示删除按钮。
触摸操作和向左滑动的滑动代码在appium 1.4中运行良好,但问题是在我们迁移到appium 1.6之后才出现的。
非常感谢您的帮助
试试这个代码。调用flick_left并传递WebElement。
flick_left(元素)
public void flick_left(WebElement flick_element) {
Point location = flick_element.getLocation();
Dimension size = flick_element.getSize();
int flick_x, flick_y, flick_start_x, flick_end_x,flick_start_y,flick_end_y;
flick_x =size.getWidth();
flick_y = location.y + (size.getHeight()/2);
flick_start_x = flick_x - (int)((double)flick_x*0.25);
flick_end_x = flick_x -(int)((double)flick_x*0.55);
swipe(flick_start_x, flick_y, flick_end_x, flick_y,-200);
}
public void swipe(int swipe_start_x, int swipe_start_y, int swipe_end_x, int swipe_end_y,int duration){
int x = swipe_start_x;
int y = swipe_start_y;
int x_travel = swipe_end_x-swipe_start_x;
int y_travel = swipe_end_y-swipe_start_y;
TouchAction action1 = new TouchAction(driver).press(x,y).waitAction(duration).moveTo(x_travel, y_travel).release();
action1.perform();
}
public void swipe(String direction, int offset, int time) {
int y = appiumDriver.manage().window().getSize().getHeight();
int x = appiumDriver.manage().window().getSize().getWidth();
TouchAction touchAction = new TouchAction(appiumDriver);
System.out.println(x+" "+y);
System.out.println("Entering swipe");
if("right".equalsIgnoreCase(direction))
{
System.out.println("Swipe Right");
touchAction.press(x-offset, y/2).moveTo(-(x-(2*offset)), 0).release().perform();
}else if("left".equalsIgnoreCase(direction)){
System.out.println("Swipe Left");
touchAction.press(offset, y/2).moveTo((x-(2*offset)), 0).release().perform();
}else if("up".equalsIgnoreCase(direction)){
System.out.println("Swipe Up");
touchAction.press(x/2, offset).moveTo(0, y-(2*offset)).release().perform();
}else if("down".equalsIgnoreCase(direction)){
System.out.println("Swipe Down");
touchAction.press(x/2, y-offset).moveTo(0, -(y-(2*offset))).release().perform();
}
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我也有同样的问题,现在我找到了解决办法。
细节:
Appium 1.6.4 beta
Java-Client-5.x beta
Appium 1.6.x-已删除滑动,我们必须为滑动创建自己的TouchAction,因为waitAction()使用负值将执行快速滑动操作。e、 g等待行动(-200)。
TouchAction action1 = new TouchAction(driver).press(x,y).waitAction(-200).moveTo(x_travel, y_travel).release();
action1.perform();
发布你的反馈。
问题内容: 我所看到的和jQuery的。左右滑动的功能/方式如何? 问题答案: 您可以使用jQueryUI中的其他效果来执行此操作: 快速示例:
我需要在我的代码中检测滑动方向。我可以检测到方向,但它就像我向右、右上方或左上方滑动一样。左边也一样,我的要求是不抬手指,如果我向左划,它应该只向左,所有的方向都一样。有人能帮帮我吗。提前感谢! @重写公共布尔onTouchEvent(MotionEvent touchevent){
我有如下HTML结构: 我使用Selenium,需要通过使用XPath搜索这个唯一值来指向唯一值旁边的td。 我找到了解决方法:找到需要唯一值的tr,然后计算td的前一个兄弟,使用position()=count(前一个兄弟)+2 有更简单的方法吗?问题是表的结构可能会随着时间的变化而变化,但是所需的值总是紧挨着唯一的
我在水平方向上使用RecyclerView,New element从左到右。和滚动是 ltr。如何改变这个方向? XML 代码: 和Java: 适配器: public class AdapterMainPrice extender RecyclerView.Adapter {
我正在尝试为我的RecolyerView添加滑动功能。我正在跟随这个链接添加刷卡。https://github.com/nikhilpanju/recyclerviewenhanced/blob/master/recyclerviewenhanced/src/main/java/com/nikhilpanju/recyclerviewenhanced/recyclertouchlistener.j
问题内容: 我正在尝试从具有xpath的页面获取链接。问题是我只希望表内的链接,但是如果我在整个页面上应用xpath表达式,则会捕获不需要的链接。 例如: 问题是将表达式应用于整个文档。我找到了想要的元素,例如: 但这似乎也在整个文档中执行查询,因为我仍在捕获表外的链接。该页面说:“在元素上使用xpath()时,将根据元素(如果是相对的)或根树(如果是绝对的)来评估XPath表达式:”。因此,我使