Как переместить Android Seekbar вперед/назад в селене

У меня есть SeekBar библиотеки видеоплеера Android, и я хочу переместить ее с помощью селена в прямом/обратном направлении:

введите здесь описание изображения

Я хочу переместить этот SeekBar вперед/назад, но не могу этого сделать. Я пытаюсь двигаться вперед как:

 MobileElement seekBar = (MobileElement) driver.findElementByClassName("android.widget.SeekBar");
        seekBar.click();
// get start co-ordinate of seekbar
    int start = seekBar.getLocation().getX();
    // Get width of seekbar
    int end = seekBar.getSize().getWidth();
    // get location of seekbar vertically
    int y = seekBar.getLocation().getY();

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

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

Но это всегда приходит к определенному моменту, изменяю ли я значение для end и start или нет. Код, который я пытаюсь переместить назад, выглядит так:

public void moveSeekBarBackward(MobileElement seekBar, AndroidDriver<WebElement> driver) {
    // get start co-ordinate of seekbar
    seekBar.click();
    int start = seekBar.getLocation().getX();

    // Get width of seekbar
    int end = seekBar.getSize().getWidth();
    // get location of seekbar vertically
    int y = seekBar.getLocation().getY();

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

    // Move it 20%
    int moveTo = (int) (end * 0.2);
    action.longPress(start, y).moveTo(moveTo, y).release().perform();
}

Приведенный выше код запускает видео с того же места, где оно начинается после его пересылки. Пожалуйста, дайте мне знать, если вы правильное решение для него.


person Anshul Tyagi    schedule 06.07.2020    source источник


Ответы (1)


Не могли бы вы попробовать второе решение, но использовать там долгое нажатие вместо нажатия

action.longpress(start, y).moveTo(moveTo, y).release().perform();
person Norayr Sargsyan    schedule 06.07.2020
comment
Да, пробовал, но тоже не работает. И тоже нет ошибки. - person Anshul Tyagi; 06.07.2020
comment
Теперь я могу двигаться вперед, но не назад. Можете ли вы сейчас увидеть мой фрагмент и сообщить мне? - person Anshul Tyagi; 07.07.2020
comment
Затем вы должны написать новый метод для перемещения назад, поскольку фактическое местоположение вашего курсора составляет 40%, вы должны получить новые x и y для панели поиска и двигаться в направлении менее 40% - person Norayr Sargsyan; 07.07.2020
comment
Я обновил свой вопрос с обновленным кодом. Пожалуйста, проверьте и исправьте меня, если я делаю что-то не так. - person Anshul Tyagi; 07.07.2020
comment
Нет, думаю должно сработать, попробуй двигаться назад нажатием вместо долгого нажатия и посмотри результат, может сработает - person Norayr Sargsyan; 07.07.2020
comment
Жаль, что нет изменений. - person Anshul Tyagi; 07.07.2020