#selenium #xpath #drag-and-drop
#селен #xpath #перетаскивание
Вопрос:
Я работаю над автоматизацией дизайнера форм, и мне нужно перетащить несколько полей в раздел «Специальные поля». Я не могу перетаскивать поля в раздел «Специальные поля». Я перепробовал все решения, которые были даны в net, не повезло. Xpath в раздел «Специальные поля» имеет набор полей следующим образом. Это из-за набора фреймов в xpath, что перетаскивание не работает?
Специальный раздел xpath: //div/fieldset[содержит (@id,’formEditorTestFieldSet’)]/div[содержит (@id,’formEditorTestFieldSet’)]
Комментарии:
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, чтобы получить путь, как вы упомянули.