2016-05-16 75 views
0

我是新來的硒(爪哇)。在做練習的同時,我發現這兩個元素都是可拖拽的頁面。我幾乎嘗試了所有的辦法...... http://the-internet.herokuapp.com/drag_and_drop如何在應用程序中拖拽兩個可拖曳元素?

// ****Case 1**** 

    Actions builder = new Actions(driver); 
    builder.dragAndDrop(fromWebElement, toWebElement); 

// ****Case 2**** 

    Actions builder = new Actions(driver); 
    Action dragAndDrop = 
     builder.clickAndHold(fromWebElement).moveToElement(toWebElement) 
     .release(toWebElement).build(); 
    dragAndDrop.perform(); 

// ****Case 3**** 
Actions builder = new Actions(driver); 
    Action dragAndDrop = 
     builder.clickAndHold(fromWebElement).moveToElement(toWebElement, 2, 2) 
     .release(toWebElement).build(); 
    dragAndDrop.perform(); 


//****Case 4**** 
    Actions builder = new Actions(driver); 
    builder.clickAndHold(fromWebElement).moveToElement(toWebElement).perform(); 
    Thread.sleep(2000);// add 2 sec wait 
    builder.release(toWebElement).build().perform(); 


//****Case 5**** 
    Point coordinates1 = fromWebElement.getLocation(); 
    Point coordinates2 = toWebElement.getLocation(); 
     Robot robot = new Robot(); 
     robot.mouseMove(coordinates1.getX(), coordinates1.getY()); 
     robot.mousePress(InputEvent.BUTTON1_MASK); 
     robot.mouseMove(coordinates2.getX(), coordinates2.getY()); 
     robot.mouseRelease(InputEvent.BUTTON1_MASK); 
     Thread.sleep(2000); 
+0

仍然無法處理它,,,,, – Zain

回答

0

試試下面的代碼:

@Test 
public void test() throws InterruptedException, AWTException{ 

    WebDriver driver = new FirefoxDriver();  

    driver.manage().window().maximize(); 
    driver.get("http://the-internet.herokuapp.com/drag_and_drop"); 
    Thread.sleep(3000); 

    WebElement fromWebElement = driver.findElement(By.cssSelector("#column-a")); 
    WebElement toWebElement = driver.findElement(By.cssSelector("#column-b")); 

    int x = toWebElement.getLocation().getX(); 
    int y = toWebElement.getLocation().getY(); 

    Point coordinates = driver.findElement(By.cssSelector("#column-a")).getLocation(); 

    Robot robot = new Robot(); 
    robot.mouseMove(coordinates.getX()+120,coordinates.getY()+120); 
    Thread.sleep(1000); 

    Actions builder1 = new Actions(driver); 
    builder1.clickAndHold(fromWebElement).moveToElement(toWebElement).release().build().perform(); 
    Thread.sleep(1000); 
    Point coordinates1 = driver.findElement(By.cssSelector("#column-b")).getLocation(); 
    Robot robot1 = new Robot(); 
    robot1.mouseMove(coordinates1.getX()+120,coordinates1.getY()+120); 


    Thread.sleep(1000); 
    Robot bot = new Robot(); 
    bot.mouseMove(x +120, y+120);  
    bot.mousePress(InputEvent.BUTTON1_MASK); 
    bot.mouseRelease(InputEvent.BUTTON1_MASK); 
} 

希望這會幫助你。

+0

不幸的是不工作..... – Zain

+0

它在我的機器上工作正常....請給出錯誤信息 – noor

+0

沒有錯誤,並且對象不甚至移動到第二個對象的地方(意味着A沒有拖到B側) – Zain