Селен: нажмите и удерживайте элемент, а затем сдвиньте его - PullRequest
0 голосов
/ 23 сентября 2019

В моем приложении есть сценарий, в котором мне нужно сдвинуть элемент в виде списка, чтобы добавить новую запись в элемент.Я должен автоматизировать это с помощью Selenium и C #.Приложение разработано с использованием Ionic и Angular Frameworks.

В Selenium есть опция для методов ClickAndHold и MoveByOffset, но ни один из них, похоже, не работает.При этом никаких ошибок не отображается.Пожалуйста, помогите.

Код, который я пробовал до сих пор, приведен ниже.

Actions dragger = new Actions(driver);

elementToSlide = driver.FindElement(By.XPath("//ion-item-slide[1]"));

dragger.ClickAndHold(elementToSlide).MoveByOffset(-47,0).Build().Perform();

Изображения прилагаются для справки.Первый элемент в виде списка слайдов.

Before performing slide

After performing slide

Ответы [ 3 ]

0 голосов
/ 23 сентября 2019

У меня была такая же проблема, я написал такой код, и он работал для меня:

                Actions action = new Actions(driver);
                action.clickAndHold(elementToSlide);
                action.moveToElement(NextplaceElement).release();
                action.build().perform();
0 голосов
/ 24 сентября 2019

Спасибо за ваши ответы, на самом деле я понял, что в ионных рамках мы должны использовать скользящий элемент ионного элемента для скольжения, а следующий дочерний элемент, который является ионным элементом.Я сделал с помощью следующего кода.

var slidableItm = driver.FindElement(By.XPath("//ion-item-sliding/ion-item");

Actions dragger = new Actions(driver);

dragger.ClickAndHold(slidableItm))).MoveByOffset(-47, 0).Build().Perform();

Затем после скольжения нам нужно нажать на некоторыекоординаты элемента, чтобы закончить и выпустить слайд.Это можно сделать с помощью следующего кода:

var clickableItm = driver.FindElement(By.XPath("/ion-item-sliding/ion-item/div[1]/div/ion-label/div/p[1]"));

ILocatable c = (ILocatable)clickableItm;

RemoteWebDriver rd = (RemoteWebDriver)driver;

rd.Mouse.Click(c.Coordinates);

0 голосов
/ 23 сентября 2019

Может быть, команда перетаскивания может решить вашу проблему, попробуйте вот так

IWebElement elementToSlide = driver.FindElement(By.XPath("//ion-item-slide[1]"))
Actions dragger = new Actions(driver);
dragger.DragAndDropToOffset(elementToSlide, -47, 0).Build().Perform();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...