9

重複の可能性:
Selenium Webdriver を使用して jQuery の Horizo​​ntal Slider または Vertical Slider を移動する方法

インターネットにはスライダーの例がたくさんあります

http://jqueryui.com/demos/slider/

Selenium を使用してスライダーを動かすことは可能ですか?

4

2 に答える 2

11

作業コード-

WebDriver driver = new InternetExplorerDriver();
driver.get("http://jqueryui.com/demos/slider/");
//Identify WebElement
WebElement slider = driver.findElement(By.xpath("//div[@id='slider']/a"));

//Using Action Class
Actions move = new Actions(driver);
Action action = move.dragAndDropBy(slider, 30, 0).build();
action.perform();

driver.quit();

ソース - https://gist.github.com/2497551

于 2012-08-25T14:29:09.807 に答える
2

Actionインターフェイス を試したことがありますか?

特に「アクションチェーンを生成する」というポイントはあなたを助けるはずです

/**
 * Moves a jQuery slider to percental position, don't care about directions
 * @param slider to move
 * @param percent to set the slider
 */
public void moveSliderToPercent(WebElement slider, int percent){

    Actions builder = new Actions(this.driver);

    Action dragAndDrop;

    int height = slider.getSize().getHeight();
    int width = slider.getSize().getWidth();


    if(width>height){
        //highly likely a horizontal slider
        dragAndDrop = builder.clickAndHold(slider).moveByOffset(-(width/2),0).
                       moveByOffset((int)((width/100)*percent),0).
                       release().build();
    }else{
        //highly likely a vertical slider
        dragAndDrop = builder.clickAndHold(slider).moveByOffset(0, -(height/2)).
                       moveByOffset(0,(int)((height/100)*percent)).
                       release().build();
    }


    dragAndDrop.perform();

}
于 2012-08-27T08:58:27.930 に答える