Сколько способов мы можем реализовать функциональность Drag & Drop, используя Selenium и Java - PullRequest
0 голосов
/ 11 февраля 2020

Сколько способов мы можем реализовать функциональность Drag & Drop, используя 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();

1 Ответ

0 голосов
/ 11 февраля 2020

Функция перетаскивания может быть реализована несколькими способами следующим образом:

  • Использование 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();
    
  • Видео демонстрация:

dragdrop

...