2016-06-13 12 views
0

私は、次のドラッグのためのデモテストを書くと機能をドロップしています[添付のスクリーンショットを参照してください]そのために 私は次のコードを書かれています。セレンwebdriverを

@Test 
    public void DragAndDropTest() { 
     commonSteps(); 
     WebElement drag = driver.findElement(By.xpath("html/body/div[1]/div[3]/div[2]/div[1]/div[4]/div[3]/div[1]/div[1]/div/div[1]")); 
     WebElement drop = driver.findElement(By.xpath("html/body/div[1]/div[3]/div[2]/div[1]/div[4]/div[3]/div[1]/div[2]/div/div[1]")); 
     Actions builder = new Actions(driver); 
     Action dragAndDrop = builder.clickAndHold(drag).moveToElement(drop).release(drop).build(); 
     dragAndDrop.perform(); 
    } 

Web要素のドラッグが「今すぐ」の場合& WebElementドロップは「クイックプレス」用です。

私のコードではこれらの要素を見つけることができますが、「Right Now」フレームを「Quick Press」フレームにドラッグアンドドロップしません。

また、ドラッグをクリックしようとしましたが、クリックもその上で動作していません。私はこれらがJQueryの折りたたみ式のドラッグ&ドロップパネルだと思います。 Webdriverを使って折りたたみ式ドラッグアンドドロップを処理する方法。

これを達成するためにコードにどのような変更を加える必要がありますか?

enter image description here

答えて

1
Actions builder = new Actions(driver); 
    builder.clickAndHold(drag).moveToElement(drop).build(); 
    builder.dragAndDrop(drag, drop).perform(); 

これは私のために働きました。

0

クリックして保持する代わりに、ドラッグアンドドロップするアクションを直接使用できます。 Javaでは

  WebElement drag = driver.findElement(By.xpath("html/body/div[1]/div[3]/div[2]/div[1]/div[4]/div[3]/div[1]/div[1]/div/div[1]")); 
     WebElement drop = driver.findElement(By.xpath("html/body/div[1]/div[3]/div[2]/div[1]/div[4]/div[3]/div[1]/div[2]/div/div[1]")); 
     Actions builder = new Actions(driver); 
     builder.dragAndDrop(drag, drop).build().perform(); 

     //or we can drop by x and y coordinates 

     builder.dragAndDropBy(drag, 20, 0).build().perform(); 
0

以下試してみてください、

使用してキーボードアクション:

Actions builder = new Actions(driver); 
builder.keyDown(Keys.CONTROL).click(someElement).click(someOtherElement). keyUp(Keys.CONTROL).build().perform(); 

用いて、マウスアクション:

Actions builder = new Actions(driver); 
builder.clickAndHold(someElement).moveToElement(otherElement).release(otherElement).build().perform(); 
関連する問題