it-roy-ru.com

Как нажать на определенную позицию веб-элемента в селене?

Я работаю над автоматизацией видеоплеера. У меня возникают трудности при нажатии в конце индикатора выполнения видеоплеера.
Рассмотрим пример видео на YouTube . С помощью xpath я смог найти элемент панели прогресса видео. Теперь я хотел нажать в конце видео.

я пытался использоватьmoveToElement (ele, xOffset, yOffset). Но у меня не может быть статического смещения, поскольку размер видеоплеера зависит от размера окна браузера. Я пытался определить размер веб-элемента и использовать его как xoffset, но это не помогло.moveToElement (ele, ele.getRect (). getWidth () - 10, yOffset). Любые предложения здесь о том, как этого добиться? 

4
user2649233

Попробуйте этот код. Я пробовал на Chrome 54 с веб-драйвером 2.53 на Windows 8. Не трогайте мышь во время теста или даже лучше переместите курсор за пределы экрана при запуске теста. 

   WebElement elem = driver.findElement(By.className("ytp-progress-bar"));

    int width = elem.getSize().getWidth();

    Actions act = new Actions(driver);
    act.moveToElement(elem).moveByOffset((width/2)-2, 0).click().perform();

Вы можете определить смещение из множества атрибутов в div 'ytp-progress-bar'. Вам не нужно найти ширину и т.д.

Сначала нужно перейти на индикатор выполнения, потому что он исчезает через 2-3 секунды из-за неактивности на видеоэкране.

10
Grasshopper

Чтобы получить точное местоположение для нажатия на страницу, есть бесплатное дополнение к Firefox, которое поможет вам достичь этой точности. Это называется «MeasureIt». С этим вы можете измерить точные вертикальные и горизонтальные расстояния, которые вы хотите нажать

0
user7123229

Иногда Selenium недостаточно, и вам нужно работать с Javascript и JQuery. Я не Java-разработчик, но код на C # будет выглядеть так:

IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("Your Script");

Там будет больше помощи с JQuery. Я надеюсь, что смог вам помочь. 

0
Dlyx