Added all
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
package com.agile611.testng.webdriver;
|
||||
|
||||
import org.openqa.selenium.By;
|
||||
import org.openqa.selenium.JavascriptExecutor;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import static org.testng.Assert.assertEquals;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
public class DragAndDropJavascriptTest extends BaseTest {
|
||||
@Test
|
||||
public void testAppConJS() throws InterruptedException {
|
||||
driver.navigate().to("https://the-internet.herokuapp.com/drag_and_drop");
|
||||
Thread.sleep(2000);
|
||||
|
||||
WebElement columnA = driver.findElement(By.id("column-a"));
|
||||
WebElement columnB = driver.findElement(By.id("column-b"));
|
||||
|
||||
// Script JS que simula los eventos HTML5 drag & drop correctamente
|
||||
String script =
|
||||
"function simulateDragDrop(sourceNode, destinationNode) {" +
|
||||
" var EVENT_TYPES = ['dragstart','dragenter','dragover','drop','dragend'];" +
|
||||
" function createEvent(eventType) {" +
|
||||
" var event = document.createEvent('CustomEvent');" +
|
||||
" event.initCustomEvent(eventType, true, true, null);" +
|
||||
" event.dataTransfer = { data: {}, setData: function(type, val) { this.data[type]=val; }, getData: function(type) { return this.data[type]; } };" +
|
||||
" return event;" +
|
||||
" }" +
|
||||
" var dragEvent = createEvent('dragstart');" +
|
||||
" sourceNode.dispatchEvent(dragEvent);" +
|
||||
" destinationNode.dispatchEvent(createEvent('dragenter'));" +
|
||||
" destinationNode.dispatchEvent(createEvent('dragover'));" +
|
||||
" var dropEvent = createEvent('drop');" +
|
||||
" dropEvent.dataTransfer = dragEvent.dataTransfer;" +
|
||||
" destinationNode.dispatchEvent(dropEvent);" +
|
||||
" sourceNode.dispatchEvent(createEvent('dragend'));" +
|
||||
"}" +
|
||||
"simulateDragDrop(arguments[0], arguments[1]);";
|
||||
|
||||
((JavascriptExecutor) driver).executeScript(script, columnA, columnB);
|
||||
Thread.sleep(2000);
|
||||
|
||||
// Verificar el intercambio
|
||||
assertEquals(driver.findElement(By.cssSelector("#column-a header")).getText(), "B");
|
||||
assertEquals(driver.findElement(By.cssSelector("#column-b header")).getText(), "A");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,36 +3,32 @@ package com.agile611.testng.webdriver;
|
||||
import org.openqa.selenium.By;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.interactions.Actions;
|
||||
import static org.testng.Assert.assertEquals;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
public class DragAndDropTest extends BaseTest {
|
||||
|
||||
@Test
|
||||
public void testApp() throws InterruptedException {
|
||||
driver.navigate().to("http://compendiumdev.co.uk/selenium/testpages/gui_user_interactions.html");
|
||||
WebElement draggable1 = driver.findElement(By.xpath(".//*[@class='draganddrops']/div/div[1]"));
|
||||
WebElement draggable2 = driver.findElement(By.id("draggable2"));
|
||||
WebElement droppable1 = driver.findElement(By.id("droppable1"));
|
||||
WebElement droppable2 = driver.findElement(By.id("droppable2"));
|
||||
|
||||
driver.navigate().to("https://the-internet.herokuapp.com/drag_and_drop");
|
||||
Thread.sleep(2000);
|
||||
|
||||
// Localizar los dos elementos con sus IDs reales
|
||||
WebElement columnA = driver.findElement(By.id("column-a"));
|
||||
WebElement columnB = driver.findElement(By.id("column-b"));
|
||||
|
||||
// Verificar estado inicial: A está a la izquierda, B a la derecha
|
||||
assertEquals(columnA.findElement(By.tagName("header")).getText(), "A");
|
||||
assertEquals(columnB.findElement(By.tagName("header")).getText(), "B");
|
||||
|
||||
// Arrastrar A sobre B (intercambiar posiciones)
|
||||
Actions dragAndDrop = new Actions(driver);
|
||||
dragAndDrop.dragAndDrop(draggable1, droppable1).perform();
|
||||
Thread.sleep(4000);
|
||||
dragAndDrop.dragAndDrop(draggable2, droppable2).perform();
|
||||
Thread.sleep(4000);
|
||||
dragAndDrop.dragAndDrop(columnA, columnB).perform();
|
||||
Thread.sleep(2000);
|
||||
|
||||
|
||||
/*
|
||||
dragAndDrop
|
||||
.clickAndHold(draggable2)
|
||||
.moveToElement(droppable1)
|
||||
.release().build().perform();
|
||||
Thread.sleep(4000);
|
||||
dragAndDrop
|
||||
.clickAndHold(draggable2)
|
||||
.moveToElement(droppable2)
|
||||
.release().build().perform();
|
||||
Thread.sleep(4000);
|
||||
*/
|
||||
// Verificar que han intercambiado: ahora A está donde estaba B y viceversa
|
||||
assertEquals(columnA.findElement(By.tagName("header")).getText(), "B");
|
||||
assertEquals(columnB.findElement(By.tagName("header")).getText(), "A");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user