Не удается перетащить в selenium webdriver с помощью java ни в Chrome, ни в FF

#selenium #xpath #drag-and-drop

#селен #xpath #перетаскивание

Вопрос:

введите описание изображения здесьЯ работаю над автоматизацией дизайнера форм, и мне нужно перетащить несколько полей в раздел «Специальные поля». Я не могу перетаскивать поля в раздел «Специальные поля». Я перепробовал все решения, которые были даны в net, не повезло. Xpath в раздел «Специальные поля» имеет набор полей следующим образом. Это из-за набора фреймов в xpath, что перетаскивание не работает?

Специальный раздел xpath: //div/fieldset[содержит (@id,’formEditorTestFieldSet’)]/div[содержит (@id,’formEditorTestFieldSet’)]

введите описание изображения здесь Я также приложил скриншот HTML.

Комментарии:

1. Можете ли вы предоставить HTML, даже частично с кодом, который вы пробовали?

2. У меня есть метод, специфичный для фреймворка. Это не сработало. Также я попробовал следовать selenium one, но все равно не сработало. Actions builder = новые действия(getWebDriver()); builder.clickAndHold(ПОЛЕ).moveToElement(SPECIAL_FIELD).release().build().perform();

3. Теперь я прикрепил скриншот HTML в вопросе. надеюсь, это поможет

Ответ №1:

Попробуйте использовать так. Это тот dragElement , который вам нужно переместить, взять xpath id или cssSelector . Здесь я использовал cssSelector . Кроме того, dropElement это место, где вам нужно удалить выбранный элемент.

 public void dragAndDropContent() {

     WebElement dragElement = driver.findElement(By.cssSelector("drag element path"));

     WebElement dropElement = driver.findElement(By.xpath("drop element path"));

    Actions builder = new Actions(driver);
    Action dragAndDrop = builder.clickAndHold(dragElement)
            .moveToElement(dropElement).release(dropElement).build();
    dragAndDrop.perform();

}
  

Также, пожалуйста, проверьте, правильно ли вы переключаетесь на конкретное окно или нет. Надеюсь, это вам поможет 🙂

Комментарии:

1. Созданный вами xpath выделяет «Специальный раздел» с использованием firepath? Вы видите какие-либо исключения? можете ли вы напрямую перейти в специальный раздел, как показано ниже //div[contains(@id,'formEditorTestFieldSet')]

2. @nandeshkalyankar В специальном разделе вам необходимо указать соответствующий xpath, id или css-путь. вы можете использовать firepath или firebug, чтобы получить путь, как вы упомянули.