>

Appium 1.6을 사용하는iOS 10의 특정 요소를 왼쪽으로 스 와이프하여 삭제 버튼을 표시하려고합니다.

터치 액션 및 스 와이프왼쪽 방향으로 쓸어 넘기는 코드가 appium 1.4에서 제대로 작동하지만 appium 1.6으로 마이그레이션 한 후에 만 ​​문제가 발생했습니다.

어떤 도움이라도 대단히 감사합니다


  • 답변 # 1

    같은 문제가 있는데 해결책을 찾았습니다.

    세부 사항 :

    Appium 1.6.4 beta 
     Java-Client-5.x beta
    
    
    와이즈 비즈

    Appium 1.6.x - Swipe has been removed and we have to create own TouchAction for swipe, in that waitAction() use negative value will perform the fast swipe action. e.g waitAction(-200).

    의견 게시.

  • 답변 # 2

    TouchAction action1 = new TouchAction(driver).press(x,y).waitAction(-200).moveTo(x_travel, y_travel).release();
            action1.perform();
    
    

  • 답변 # 3

    이 코드를 사용해보십시오. flick_left를 호출하고 WebElement를 전달하십시오.

    flick_left (요소)

    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();
            }
        }
    
    
    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(); }

관련 자료

  • 이전 php - 다른 시간에 파일을 해독하려면 암호를 한 번만 요구합니까?
  • 다음 powershell 5를 사용하여 2 가지 주요 사용법으로 인증서를 작성하는 방법