2017-09-07 8 views
2

ウェブページのUIを自動化しようとしています。以下のウェブページのリンクを見つけてください http://demoqa.com/draggable/Seleniumウェブドライバを使用したドラッグアンドソートテスト

このウェブページには、Draggable + Sortableというオプションがあります.Draggable + Sortableオプションをクリックしてください。順序付けられていないリストが表示されます。リスト項目をドラッグすると、このリストの順序を並べ替えることができます。

私はこれを自動化するコードを書いています。しかし、私のコードは部分的に動いています。コードは要素をドラッグできますが、必要な場所に配置することはできません。コード内の手順を見つけてください。 私は、次のコードを試してみてくださいリスト

WebElement drgnsort = dr.findElement(By.linkText("Draggable + Sortable")); 
     drgnsort.click(); 
     WebElement container = dr.findElement(By.id("sortablebox")); 
     List<WebElement> lis = container.findElements(By.tagName("li")); 
     WebElement one = lis.get(0); 
     builder.clickAndHold(one).moveByOffset(0,200).release().perform(); 
+0

Actionsクラスには、「dragAndDrop」機能があります。あなたは、ホイールを作り直すのではなく、ホイールを使って調べるべきです。 ;) – IamBatman

+0

DragAndDropの場合、宛先の場所を特定できません。順序付けされていないリスト全体がdiv内にあり、順序付けられていないリスト以外の要素はありません。 –

+0

"dragAndDropBy"を試してみてください。ピクセル単位で移動することができます。 – IamBatman

答えて

1

の下部に一つを配置しようとしています:「私たちは」webdriverをのインスタンスである場合は

Actions action = new Actions(we); 
    List<WebElement> list = we.findElements(By.cssSelector("#sortablebox li")); 
    WebElement target = list.get(0); 
    WebElement dest = list.get(3); 
    action.click(target).clickAndHold().moveToElement(dest).moveByOffset(0, 10).release().build().perform(); 

を。
索引で順序付けられていないリストを識別できるので、要素をもう少し動かす必要があります。そのため、私は 'moveByOffset(0、10)'を使用しています。

+0

ありがとうPankaj。コードが動作します。私はちょうど1つの質問があります。 cssSelector( "#sortablebox li")について説明してください。 IDを持つUn-orderedリストの検索とはどのように違うのですか? –

+0

Idを使って "リスト"(リスト)を得る方法も知っていますか? –

+0

IDはページ全体で一意ですが、複数のWeb要素がセレクタに対応する場合は、「we.findElement」の代わりに「we.findElements」を使用します。 Web要素のリストが表示されます。 P.S.役に立ったと答えた場合は、アップしてください。ありがとう –

関連する問題