2017-08-28 6 views
3

要素をある場所から別の場所にドラッグアンドドロップしたいとします。したがって、私は自分の機能を達成するためにアクションクラスを使用しています。ActionクラスがSelenium 3.5.3で動作していません

問題は、コードが正常に実行され、エラーが表示されていても、機能の目標は達成されないということです。

firefoxとchromeブラウザで同じコードを試しましたが、同じ問題が両方のブラウザで複製されています。

ここにサイトurlがあります。私もこの答えをしようと持っていますが、同じ問題を複製し

driver.get("http://www.seleniumeasy.com/test/drag-and-drop-demo.html"); 
driver.manage().window().maximize(); 

driver.findElement(By.xpath("//div[@id='todrag']//span[contains(text(), 'Draggable 1')]")); 
driver.findElement(By.xpath("//div[@id='todrag']//span[contains(text(), 'Draggable 2')]")); 
driver.findElement(By.xpath("//div[@id='todrag']//span[contains(text(), 'Draggable 3')]")); 
driver.findElement(By.xpath("//div[@id='todrag']//span[contains(text(), 'Draggable 4')]")); 

WebElement to = driver.findElement(By.xpath("//div[@class='w50 moveleft']//div[@id='mydropzone']")); 
String[] array_drag = new String[] {"Draggable 1", "Draggable 2", "Draggable 3", "Draggable 4"}; 

for(int i=0; i<array_drag.length; i++) 
{ 
    WebElement from = driver.findElement(By.xpath("//div[@id='todrag']//span[contains(text(), '"+array_drag[i]+"')]")); 
    Actions act = new Actions(driver); 
    act.clickAndHold(from).build().perform(); 
    Thread.sleep(2500); 
    act.clickAndHold().moveToElement(to).release(to).build().perform(); 
    Thread.sleep(2500);   
} 

私はコードを試してみました。

Actions act = new Actions(driver); 
act.moveToElement(from).moveToElement(to).build().perform(); 

以下の添付画像もご覧になれます。コードは正常に実行され、エラーは表示されません。

enter image description here

誰も私がこの問題を解決するのを助けることができますか?

+0

はアクションが動作していないため、直接dragAndDropですか? –

+0

@ムラリセレン、はい、それも動作していません。 –

+0

そのWebサイトは期待どおりに動作していないようです。手動でドラッグ&ドロップすることはできません。あなたのコードではなく、サイトに問題はありますか? –

答えて

0

我々は

Action dragAndDrop = builder.clickAndHold(src) 
     .moveToElement(trg) 
     .release(trg) 
     .build(); 
     dragAndDrop.perform(); 
+0

あなたの貴重な時間@ムラリセレンのおかげで、私はあなたのコードを試してみましたが、同じ問題を再現します。 –

0
    Actions builder=new Actions(driver); 
        builder.clickAndHold(weDragFrom).build().perform(); 
        Thread.sleep(5000); 
        builder.click(weDragTo).build().perform(); 
        builder.release(weDragTo).build().perform(); 

` も、このように試すことができます残念ながら、これは私のためではなく、FirefoxやIE11にクロムでのみ動作します。この仕事をするための解決策を模索中です。コードを実行しても何のエラーもなく何もしません。

+0

あなたの答えをありがとう、私はあなたのコードを試してみましたが、私のために、これらの言及されたブラウザのいずれかで動作していません。 (Chrome、Firefox、IE11) –

関連する問題