在我的应用程序中,我有一个场景,我需要在列表视图中滑动元素以向该项目添加新条目。我必须使用Selenium和C#将其自动化。应用程序是使用Ionic和Angular框架开发的。
在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();
图像仅供参考。列表视图中的第一个元素会滑动。
答案 0 :(得分:0)
也许拖放命令可以解决您的问题,请尝试这样
IWebElement elementToSlide = driver.FindElement(By.XPath("//ion-item-slide[1]"))
Actions dragger = new Actions(driver);
dragger.DragAndDropToOffset(elementToSlide, -47, 0).Build().Perform();
答案 1 :(得分:0)
我遇到了同样的问题,我写了这样的代码,它对我有用:
Actions action = new Actions(driver);
action.clickAndHold(elementToSlide);
action.moveToElement(NextplaceElement).release();
action.build().perform();
答案 2 :(得分:0)
感谢您的回答,实际上我在离子框架中发现我们不应该使用ion-item-sliding元素进行滑动,而应该使用下一个子元素ion-item。我是通过使用以下代码来完成的。
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);
答案 3 :(得分:0)
Actions a = new Actions(driver);
a.clickAndHold(e2).pause(2000).moveToElement(e1).release().build().perform();