2017-02-14 11 views
1

ドラッグアンドドロップをセレンで実装しようとしています。これは私が思いついた新しいシナリオです。ドロップ位置は、ソースをドラッグして位置を落として保持するまで表示されません。セレニウムのドラッグアンドドロップで表示されない場所

Actions builder = new Actions(driver); 
builder.clickAndHold(curSourceElement).build().perform(); 
builder.moveToElement(curTargetElement).build().perform(); 
builder.release(curTargetElement).build().perform();  

シナリオ2:

builder.clickAndHold(curSourceElement).build().perform(); 
builder.moveToElement(curTargetElement).clickAndHold(curTargetElement).moveByOffset(0,500).release(curTargetElement).build().perform(); 

とに移動することで、他の多くの方法私は

シナリオ1のようないくつかのことを試してみました enter image description here

:それは次のようになります待ち時間を追加することによって、それらのどれも動作していないように見えます。

ドロップ位置が見えないときはドラッグアンドドロップを行う方法はありますか。

本当にありがとうございます。

ありがとうございました。

答えて

0

私の最初の試みは、次のようになります。

ところで
Size currentWinSize = driver.Manage().Window.Size; 
driver.Manage().Window.Maximize(); //Remove window size as a concern 

Actions builder = new Actions(driver); 
builder.clickAndHold(curSourceElement); 
builder.moveToElement(curTargetElement).Build().Perform(); 
sleepResponsibly(2000); //Give handler time to react. After working replace 
         // sleep with wait on ExpectedConditions 
builder.release(curTargetElement).build().perform(); 
driver.Manage().Window.Size = currentWinSize; // Put window size back 

public void sleepResponsibly(int timeMillisecond){ 
    try{ 
     Thread.sleep(timeMillisecond); 
    } catch (InterruptedException ex) { 
     Thread.currentThread().interrupt(); 
     throw new RuntimeException(ex); 
    } 
} 

、私は(Window.Maximizeですべての私のテストを実行します)が、そうでない場合はステップが含まれています。また、ホバーイベントハンドラがポップしてターゲットとして動作する新しい要素を開くと、その新しい要素がクリック可能になるのを待ってからその新しいターゲットを解放する必要があります。あなたのコードがどのように設計されたかはあなただけが知っている

関連する問題