Added all

This commit is contained in:
Guillem Hernandez Sola
2026-04-20 13:23:34 +02:00
parent aa622511f4
commit 2ea0dc239b
2 changed files with 67 additions and 23 deletions

View File

@@ -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");
}
}

View File

@@ -3,36 +3,32 @@ package com.agile611.testng.webdriver;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.interactions.Actions;
import static org.testng.Assert.assertEquals;
import org.testng.annotations.Test; import org.testng.annotations.Test;
public class DragAndDropTest extends BaseTest { public class DragAndDropTest extends BaseTest {
@Test @Test
public void testApp() throws InterruptedException { 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); Actions dragAndDrop = new Actions(driver);
dragAndDrop.dragAndDrop(draggable1, droppable1).perform(); dragAndDrop.dragAndDrop(columnA, columnB).perform();
Thread.sleep(4000); Thread.sleep(2000);
dragAndDrop.dragAndDrop(draggable2, droppable2).perform();
Thread.sleep(4000);
// Verificar que han intercambiado: ahora A está donde estaba B y viceversa
/* assertEquals(columnA.findElement(By.tagName("header")).getText(), "B");
dragAndDrop assertEquals(columnB.findElement(By.tagName("header")).getText(), "A");
.clickAndHold(draggable2)
.moveToElement(droppable1)
.release().build().perform();
Thread.sleep(4000);
dragAndDrop
.clickAndHold(draggable2)
.moveToElement(droppable2)
.release().build().perform();
Thread.sleep(4000);
*/
} }
} }