Specflow硒Web驱动程序,拖放操作不起作用

问题描述 投票:0回答:1

我尝试通过以下所有方法来实现html元素的拖放功能。但是他们都不适合我。这是具有最新specflow版本的.net框架项目。

1种方式

var actions = new Actions(Context.WebDriver);
 actions.DragAndDrop(elementDrag, destination).Release(elementDrag).Build().Perform();

2种方式

actions.MoveToElement(elementDrag, 10, 10, MoveToElementOffsetOrigin.Center)
.ClickAndHold(elementDrag)
   .MoveByOffset(5, 5)
   .MoveToElement(destination)
   .Release(elementDrag)
   .Build()
   .Perform();

3种方式

  actions.MoveToElement(elementDrag, 10, 10, MoveToElementOffsetOrigin.Center)
    .ClickAndHold()
    .MoveByOffset(50, -300)
    .Release(elementDrag)
    .Build()
    .Perform();

4种方式

 actions.ClickAndHold(elementDrag).Build().Perform();
 Thread.Sleep(3000);
 actions.MoveToElement(destination).Build().Perform();
 actions.Release(destination).Build().Perform();

而且我播种的拖放问题是硒的一个已知问题,可以使用javasript实现来解决。不知道那是什么。

谁能建议我一个解决方案。

c# selenium selenium-webdriver bdd specflow
1个回答
0
投票

您可以尝试此版本。

确定来源和名称。

var ele1 = Browser.FindElement(By.Xpath("//div[@class='myDragableItem")); 
var ele2 = Browser.FindElement(By.Xpath("//div[@class='myDestination"));


DragAndDrop(ele1, ele2);



        public static void DragAndDrop(IWebElement element1, IWebElement element2)
    {
        WaitForElementEnabled(element1);
        WaitForElementEnabled(element2);
        var builder = new Actions(driver);
        var dragAndDrop = builder.ClickAndHold(element1).MoveToElement(element2).Release(element2).Build();
        dragAndDrop.Perform();
    }
© www.soinside.com 2019 - 2024. All rights reserved.