【问题标题】:How many ways can we implement Drag & Drop functionality using Selenium and Java我们有多少种方法可以使用 Selenium 和 Java 实现拖放功能
【发布时间】:2020-02-11 11:55:42
【问题描述】:
我们可以通过多少种方式使用 Selenium 和 Java 实现拖放功能?
代码尝试:
Thread.sleep(3000);
WebElement FROM = driver.findElement(By.xpath("(//div[@class='item-container flex-container-horizontal'])[1]"));
Thread.sleep(3000);
WebElement to = driver.findElement(By.xpath("//div[text()='Product Quality?']"));
Thread.sleep(3000);
Actions act=new Actions(driver);
act.dragAndDrop(FROM, to).build().perform();
【问题讨论】:
标签:
java
selenium-webdriver
drag-and-drop
webdriver
【解决方案1】:
拖放功能可以通过多种方式实现,如下所示:
-
使用dragAndDrop():
System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
WebDriver driver=new FirefoxDriver();
driver.get("http://jqueryui.com/droppable/");
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@class='demo-frame']")));
WebElement from = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.id("draggable")));
WebElement to = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.id("droppable")));
new Actions(driver).dragAndDrop(from, to).build().perform();
-
链接clickAndHold() 和moveToElement():
System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
WebDriver driver=new FirefoxDriver();
driver.get("http://jqueryui.com/droppable/");
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@class='demo-frame']")));
WebElement drag = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.id("draggable")));
WebElement drop = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.id("droppable")));
new Actions(driver).clickAndHold(from).moveToElement(to).release(from).build().perform();
视频演示: