#selenium #drag-and-drop
Вопрос:
В https://www.globalsqa.com/demo-site/draganddrop/ Мне нужно перетащить картинку с текстом «Высокие Татры» в раздел «Корзина».
@Test
void task1() {
System.setProperty("webdriver.chrome.driver", "C:\Users\DELL\Desktop\New folder\chromedriver.exe");
WebDriver webDriver = new ChromeDriver();
try {
webDriver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
webDriver.get("https://www.globalsqa.com/demo-site/draganddrop/");
WebElement from = webDriver.findElement(By.xpath("//*[@id="gallery"]/li[1]"));
WebElement to = webDriver.findElement(By.xpath("//*[@id="trash"]"));
Actions actions = new Actions(webDriver);
actions.dragAndDrop(from, to).build().perform();
} finally {
webDriver.close();
}
}
Комментарии:
1. веб-элементы от и до находятся внутри рамки. Пытаюсь переключиться на кадр, а затем выполнить перетаскивание()
Ответ №1:
Оба элемента from
и to
находятся внутри iframe
.
Таким образом, чтобы получить доступ к этим элементам, вам сначала нужно переключиться на это iframe
. Ваш код будет выглядеть следующим образом:
@Test
void task1() {
System.setProperty("webdriver.chrome.driver", "C:\Users\DELL\Desktop\New folder\chromedriver.exe");
WebDriver webDriver = new ChromeDriver();
try {
webDriver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
webDriver.get("https://www.globalsqa.com/demo-site/draganddrop/");
driver.switchTo().frame(driver.findElement(By.xpath("//div[@rel-title='Photo Manager']//iframe")));
WebElement from = webDriver.findElement(By.xpath("//*[@id='gallery']/li[1]"));
WebElement to = webDriver.findElement(By.xpath("//*[@id='trash']"));
Actions actions = new Actions(webDriver);
actions.dragAndDrop(from, to).build().perform();
} finally {
webDriver.close();
}
}