2013-07-09 2 views
1

У меня проблема с использованием Selenium Webdriver (версия 2.32.0) и Firefox (21.0), пытаясь изменить значения на слайдере.Переместить слайдер в Selenium Webdriver с Java и Firefox

Я написал код Java, как это:

private void selectGiftCardPrice() throws TestingException { 
     try { 
      WebElement slider = getDriver().findElement(
        By.cssSelector("div.sliderHandle")); 
      Actions move = new Actions(getDriver()); 
      move.dragAndDropBy(slider, 90, 0); 
      move.build().perform(); 
      sleep(4000); 
     } catch (Exception e) { 
      log.info(e); 
      throw new TestingException("e"); 
     } 

Я попробовал каждый код, который я нашел в Интернете, каждое изменение, и она до сих пор не работает. Он не показывает никаких проблем, просто находит элемент и ничего не делает. Любая идея, что это такое или что я могу сделать?

EDIT от комментариев:

я, наконец, сделал это работает с jQuery slider demo

driver.get("http://jqueryui.com/resources/demos/slider/multiple-vertical.html"); 
WebElement slider = driver.findElement(By.xpath("//div[1]/a[contains(@class,'ui-slider-handle')]"));‌ 

Но это все еще не работает для меня с jQuery UI Slider demo page помощью Xpath //div[@id='slider']/a. В чем проблема?

+0

Вы пробовали это:. 'move.dragAndDropBy (слайдер, 90, 0) .build() выполняет();'? Я несколько раз заметил, что при использовании класса «Actions()» лучше всего попытаться сохранить все действия как часть одной и той же цепочки. Прерывание цепи и «нечетные» эффекты. –

+0

Да, я сделал, и он все еще не работал, :-(. – ovejaexiste

+0

Часть html, пожалуйста. С ползунком и входом –

ответ

1

Этот код работает абсолютно нормально для меня. программа обрабатывает бегунок сайта: Homeshope18.com Проверьте это:

WebDriver driver = new FirefoxDriver(); 
driver.get("http://www.homeshop18.com/fashion-jewellery/category:15143/filter_Theme:%28%22Traditional+Wear%22+%22Cuff+%26+Kada%22+%22Daily+Wear%22+%22Maang+Tikka%22+%22Openable+Round%22+%22Round%22+%22Openable+Oval%22%29/sort:Popularity/inStock:true/?it_category=HP&it_action=JW-HPSP01&it_label=HP-HPSP01-131021235900-PD-JW-ZC-VK-SC_DiwaliFestWeddingJewellery&it_value=0"); 

WebElement slider = driver.findElement(By.xpath("//*[@id='slider-range']/a[1]")); 
Thread.sleep(3000); 

Actions moveSlider = new Actions(driver); 
Action action = moveSlider.dragAndDropBy(slider, 30, 0).build(); 

action.perform(); 
+0

Ничего. Он работает, но я не могу контролировать количество единиц для перемещения. – maxx777

0

Используя класс действия, пихты используют clickAndHold("WebElemnt");

Затем двигаться по горизонтали, мы должны двигаться в направлении Y экрана, поэтому мы можем использовать movebyoffset, т.е. оси Х: 0 & ось Y: 40px

для перемещения по вертикали, мы должны двигаться в направлении X экрана, поэтому мы можем использовать movebyoffset, т.е. X-ось: 40px & Y ось: 0

Пример кода будет:

Actions slider=new Actions(driver); 
slider.clickAndHold("WebElemnt"); 
slider.movebyoffset(0,40).build.perform(); 
Смежные вопросы