Skip to content

Commit 4bb54fd

Browse files
committed
Update version 1.8.0 released
1 parent 8f7fabe commit 4bb54fd

File tree

4 files changed

+59
-149
lines changed

4 files changed

+59
-149
lines changed

src/main/java/anhtester/com/utils/WebUI.java

Lines changed: 41 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import javax.imageio.ImageIO;
4444
import java.awt.*;
4545
import java.awt.datatransfer.StringSelection;
46+
import java.awt.event.InputEvent;
4647
import java.awt.event.KeyEvent;
4748
import java.awt.image.BufferedImage;
4849
import java.io.File;
@@ -1348,26 +1349,59 @@ public static boolean dragAndDrop(By fromElement, By toElement) {
13481349
}
13491350
}
13501351

1351-
public static boolean dragAndDropElement(By fromElement, By toElement) {
1352+
public static boolean dragAndDropHTML5(By fromElement, By toElement) {
13521353
smartWait();
13531354

13541355
try {
1355-
Actions action = new Actions(DriverManager.getDriver());
1356-
action.clickAndHold(getWebElement(fromElement)).moveToElement(getWebElement(toElement)).release(getWebElement(toElement)).build().perform();
1356+
Robot robot = new Robot();
1357+
robot.mouseMove(0, 0);
1358+
1359+
int X1 = getWebElement(fromElement).getLocation().getX() + (getWebElement(fromElement).getSize().getWidth() / 2);
1360+
int Y1 = getWebElement(fromElement).getLocation().getY() + (getWebElement(fromElement).getSize().getHeight() / 2);
1361+
System.out.println(X1 + " , " + Y1);
1362+
1363+
int X2 = getWebElement(toElement).getLocation().getX() + (getWebElement(toElement).getSize().getWidth() / 2);
1364+
int Y2 = getWebElement(toElement).getLocation().getY() + (getWebElement(toElement).getSize().getHeight() / 2);
1365+
System.out.println(X2 + " , " + Y2);
1366+
1367+
//Chổ này lấy toạ độ hiện tại cộng thêm 120px là phần header của browser (1920x1080 current window)
1368+
//Header: chrome is being controlled by automated test software
1369+
sleep(1);
1370+
robot.mouseMove(X1, Y1 + 120);
1371+
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
1372+
1373+
sleep(1);
1374+
robot.mouseMove(X2, Y2 + 120);
1375+
sleep(1);
1376+
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
1377+
13571378
return true;
13581379
} catch (Exception e) {
13591380
Log.info(e.getMessage());
13601381
return false;
13611382
}
13621383
}
13631384

1364-
public static boolean dragAndDropOffset(By fromElement, int X, int Y) {
1385+
public static boolean dragAndDropToOffset(By fromElement, int X, int Y) {
13651386
smartWait();
13661387

13671388
try {
1368-
Actions action = new Actions(DriverManager.getDriver());
1369-
//Tính từ vị trí click chuột đầu tiên (clickAndHold)
1370-
action.clickAndHold(getWebElement(fromElement)).pause(1).moveByOffset(X, Y).release().build().perform();
1389+
Robot robot = new Robot();
1390+
robot.mouseMove(0, 0);
1391+
int X1 = getWebElement(fromElement).getLocation().getX() + (getWebElement(fromElement).getSize().getWidth() / 2);
1392+
int Y1 = getWebElement(fromElement).getLocation().getY() + (getWebElement(fromElement).getSize().getHeight() / 2);
1393+
System.out.println(X1 + " , " + Y1);
1394+
sleep(1);
1395+
1396+
//Chổ này lấy toạ độ hiện tại cộng thêm 120px là phần header của browser (1920x1080 current window)
1397+
//Header: chrome is being controlled by automated test software
1398+
robot.mouseMove(X1, Y1 + 120);
1399+
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
1400+
1401+
sleep(1);
1402+
robot.mouseMove(X, Y + 120);
1403+
sleep(1);
1404+
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
13711405
return true;
13721406
} catch (Exception e) {
13731407
Log.info(e.getMessage());

src/main/resources/drag_and_drop_helper.js

Lines changed: 0 additions & 53 deletions
This file was deleted.

src/main/resources/jquery_load_helper.js

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/test/java/anhtester/com/projects/website/crm/testcases/TestHandle.java

Lines changed: 18 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import anhtester.com.utils.ObjectUtils;
1818
import anhtester.com.utils.WebUI;
1919
import org.openqa.selenium.By;
20-
import org.openqa.selenium.JavascriptExecutor;
2120
import org.openqa.selenium.WebDriver;
2221
import org.openqa.selenium.WebElement;
2322
import org.openqa.selenium.chrome.ChromeDriver;
@@ -27,9 +26,7 @@
2726
import org.testng.annotations.Test;
2827

2928
import java.awt.*;
30-
import java.awt.event.InputEvent;
3129
import java.awt.event.KeyEvent;
32-
import java.io.File;
3330
import java.text.DecimalFormat;
3431
import java.util.ArrayList;
3532
import java.util.Set;
@@ -268,38 +265,6 @@ public void handleNotificationsBrowser() {
268265
WebUI.sleep(4);
269266
}
270267

271-
@Test
272-
public void handleDragAndDropJQuery() {
273-
try {
274-
String basePath = new File("").getAbsolutePath();
275-
276-
DriverManager.getDriver().get("https://david-desmaisons.github.io/draggable-example/");
277-
Thread.sleep(1000);
278-
279-
final String JQUERY_LOAD_SCRIPT = (basePath + "/src/main/resources/jquery_load_helper.js");
280-
final String DRAG_AND_DROP_SCRIPT = (basePath + "/src/main/resources/drag_and_drop_helper.js");
281-
String jQueryLoader = Helpers.readFile(JQUERY_LOAD_SCRIPT);
282-
String dragAndDropScriptLoader = Helpers.readFile(DRAG_AND_DROP_SCRIPT);
283-
284-
JavascriptExecutor js = (JavascriptExecutor) DriverManager.getDriver();
285-
js.executeAsyncScript(jQueryLoader);
286-
287-
String source = "li:nth-child(1)";
288-
String target = "li:nth-child(2)";
289-
290-
Thread.sleep(1000);
291-
292-
String javaScript = dragAndDropScriptLoader + "window.jQuery('" + source + "').simulateDragDrop({ dropTarget: '" + target + "'});";
293-
294-
((JavascriptExecutor) DriverManager.getDriver()).executeScript(javaScript);
295-
296-
Thread.sleep(3000);
297-
} catch (Exception e) {
298-
e.printStackTrace();
299-
}
300-
301-
}
302-
303268
@Test
304269
public void handleDragAndDropJS() {
305270
DriverManager.getDriver().get("https://bestvpn.org/html5demos/drag/");
@@ -318,49 +283,38 @@ public void handleDragAndDropJS() {
318283
@Test
319284
public void handleDragAndDrop() {
320285
WebUI.getURL("http://demo.guru99.com/test/drag_drop.html");
321-
By fromElement1 = By.xpath("//a[normalize-space()='BANK']");
322-
By toElement1 = By.xpath("(//div[@id='shoppingCart1']//div)[1]");
323-
324-
By fromElement2 = By.xpath("(//li[@id='fourth'])[2]");
325-
By toElement2 = By.xpath("(//div[@id='shoppingCart4']//div)[1]");
286+
By fromElement = By.xpath("//a[normalize-space()='BANK']");
287+
By toElement = By.xpath("(//div[@id='shoppingCart1']//div)[1]");
326288

327289
//WebUI.switchToFrameByElement(toElement);
328290
//WebUI.scrollToElement(toElement);
329-
WebUI.dragAndDrop(fromElement1, toElement1);
291+
WebUI.dragAndDrop(fromElement, toElement);
330292
WebUI.sleep(1);
331-
WebUI.dragAndDropElement(fromElement2, toElement2);
332-
WebUI.sleep(2);
333293
}
334294

335295
@Test
336-
public void handleDragAndDropOffset() throws AWTException, InterruptedException {
296+
public void handleDragAndDropHTML5() {
337297
WebUI.getURL("https://david-desmaisons.github.io/draggable-example/");
338-
Thread.sleep(1000);
339-
340-
By fromElement1 = By.xpath("(//li[@class='list-group-item'])[1]");
341-
By toElement1 = By.xpath("(//li[@class='list-group-item'])[2]");
298+
WebUI.waitForPageLoaded();
342299

343-
int X1 = driver.findElement(fromElement1).getLocation().getX();
344-
int Y1 = driver.findElement(fromElement1).getLocation().getY();
345-
System.out.println(X1 + " , " + Y1);
300+
By fromElement = By.xpath("(//li[@class='list-group-item'])[1]");
301+
By toElement = By.xpath("(//li[@class='list-group-item'])[2]");
346302

347-
int X2 = driver.findElement(toElement1).getLocation().getX();
348-
int Y2 = driver.findElement(toElement1).getLocation().getY();
349-
System.out.println(X2 + " , " + Y2);
303+
WebUI.dragAndDropHTML5(fromElement, toElement);
304+
305+
WebUI.sleep(2);
306+
}
350307

351-
//Chổ này lấy theo toạ độ cụ thể. Chả biết sao nó lấy toạ độ Element chênh lệch vậy nữa =))
352-
Thread.sleep(1000);
353-
Robot robot = new Robot();
354-
robot.mouseMove(250, 570);
355-
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
308+
@Test
309+
public void handleDragAndDropOffset() {
310+
WebUI.getURL("https://david-desmaisons.github.io/draggable-example/");
311+
WebUI.waitForPageLoaded();
356312

357-
Thread.sleep(1000);
358-
robot.mouseMove(250, 610);
313+
By fromElement = By.xpath("(//li[@class='list-group-item'])[1]");
359314

360-
Thread.sleep(1000);
361-
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
315+
WebUI.dragAndDropToOffset(fromElement, 330, 600);
362316

363-
Thread.sleep(3000);
317+
WebUI.sleep(2);
364318
}
365319

366320
@Test

0 commit comments

Comments
 (0)