2016-03-04 14 views
6

Mam dostosowany pasek wyszukiwania Androida, taki jak ten, oraz pozycje, do których może przejść. I zaczyna się od środka:Nie można przenieść aplikacji Android SeekBar z Appium

enter image description here

Chcę, aby przesunąć suwak, a następnie sprawdzić, czy jest to zapisane. Mam metodę, która używam TouchAction:

public void moveSeekBar(){ 
    WebElement seekBar = appiumDriver.findElementById("com.feverapp:id/SymptomTrackingActivity_var"); 
    //Get start point of seekbar. 
    int startX = seekBar.getLocation().getX(); 
    System.out.println(startX); 
    //Get end point of seekbar. 
    int endX = seekBar.getSize().getWidth(); 
    System.out.println(endX); 
    //Get vertical location of seekbar. 
    int yAxis = seekBar.getLocation().getY(); 
    //Set slidebar move to position. 
    // this number is calculated based on (offset + 3/4width) 
    int moveToXDirectionAt = 786; 
    System.out.println("Moving seek bar at " + moveToXDirectionAt+" In X direction."); 
    //Moving seekbar using TouchAction class. 
    TouchAction act=new TouchAction(appiumDriver); 
    act.press(startX,yAxis).moveTo(moveToXDirectionAt,yAxis).release().perform(); 
} 

Coś widzę, że:

  • SeekBar nie porusza się w ogóle
  • getX i getY są zawsze te same wartości, nawet starałem się ustawić suwak z powrotem do bardzo w lewo przed I wywołanie tej metody

starałem z SendKeys tak:

seekbar.sendKeys("0.5"); 

i to działało: to przesunięcie suwaka na bardzo w lewo, a on tylko pracował z 0,5, gdy wszedłem liczbę w przedziale od 0 do 1, to nie działa

Każda pomoc mile widziane . Dzięki

+0

Próbowałeś kliknąć i przytrzymać lub przeciągnij i upuść? –

+0

@PankajKatiyar: Naciskam i poruszam się i zwalniam – Ragnarsson

Odpowiedz

1

Właśnie rozwiązałem mój problem: zamiast używać press(), próbuję longpress() i działa jak urok! Mogę przesuwać seekbar tam, gdzie chcę.

0
@Test 
    public void testSeekBar()throws Exception 
    { 
      //Locating seekbar using resource id 
      WebElement seek_bar=driver.findElement(By.id("seek_bar")); 
      // get start co-ordinate of seekbar 
      int start=seek_bar.getLocation().getX(); 
      //Get width of seekbar 
      int end=seek_bar.getSize().getWidth(); 
      //get location of seekbar vertically 
      int y=seek_bar.getLocation().getY(); 

     // Select till which position you want to move the seekbar 
     TouchAction action=new TouchAction(driver); 

     //Move it will the end 
     action.press(start,y).moveTo(end,y).release().perform(); 

     //Move it 40% 
     int moveTo=(int)(end*0.4); 
     action.press(start,y).moveTo(moveTo,y).release().perform(); 

    } 

ten pracował dla mnie bardzo dobrze

Powiązane problemy