Selenium拖放在Chrome或Firefox中不起作用

进击的人76

我使用下面的拖放代码将图片拖到光场中。这在InternetExplorer中工作正常,但在Firefox或Chrome中不起作用。我不明白为什么不这样做。

正如您在下面的代码中看到的那样,我尝试了很多不同的方式来进行拖放,但是它们都不起作用。主要问题是释放映像后目标没有更新。我看到下降发生了,但是没有更新。

有谁知道为什么会这样吗?我正在使用C#和最新的Selenium驱动程序2.39,chrome驱动程序2.8。

public static void DoDragAndDrop(IWebDriver driver, string dragImageId, string dropFieldId)
    {
        Console.WriteLine("Drag and drop image '{0}' to the editor {1}..", dragImageId, dropFieldId);
        IWebElement dragElement = WebDriverExtensions.TryFindElement(By.Id(dragImageId));
        IWebElement dropElement = WebDriverExtensions.TryFindElement(By.Id(dropFieldId));

        if(dragElement == null)
            Console.WriteLine("dragElement is null");
        if(dropElement == null)
            Console.WriteLine("dropElement is null");

        ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView();", dragElement);
        Thread.Sleep(500);

        ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView();", dropElement);
        Thread.Sleep(200);

        Console.WriteLine("Drag and drop 1");
        var builder1 = new Actions(driver);
        builder1.MoveToElement(dragElement).ClickAndHold();
        builder1.MoveToElement(dropElement).Build().Perform();
        Thread.Sleep(2000);

        Console.WriteLine("Drag and drop 2");
        var builder2 = new Actions(driver);
        builder2.DragAndDrop(dragElement, dropElement);
        Thread.Sleep(2000);

        Console.WriteLine("Drag and drop 3");
        var builder3 = new Actions(driver);
        builder3.DragAndDrop(dragElement, dropElement).Build().Perform();
        IAction dragAndDrop = builder3.ClickAndHold(dragElement)
            .MoveToElement(dropElement)
            .Release(dropElement)
            .Build();
        dragAndDrop.Perform();
        Thread.Sleep(2000);


        Thread.Sleep(1000);
        Console.WriteLine("Drag and drop succeeded..");
    }
进击的人76

这就是我现在在FireFox中使用它的方式。Chrome仍然无法运行。唯一的区别是,我在MoveToElement方法中添加了偏移,如The Rookies注释所示。

var builder = new Actions(driver);
        builder.ClickAndHold(dragElement);
        builder.MoveToElement(dropElement, 5, 5);
        builder.Perform();
        Thread.Sleep(250);
        builder.Release(dropElement);
        builder.Perform();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

拖放在Chrome中不起作用

来自分类Dev

拖放在IE中不起作用

来自分类Dev

拖放在Xcode中不起作用

来自分类Dev

拖放在ScrollViewer中不起作用

来自分类Dev

为什么HTML5拖放在Firefox中不起作用?

来自分类Dev

拖放在C#中不起作用

来自分类Dev

Selenium 命令在 Chrome 网络驱动程序中不起作用(使用 firefox)

来自分类Dev

拖放在C#Winforms应用程序中不起作用

来自分类Dev

Dropzone.js拖放在IE10中不起作用

来自分类Dev

拖放在Android Studio设计选项卡中不起作用

来自分类Dev

Dropzone.js拖放在IE10中不起作用

来自分类Dev

拖放在Android Studio设计选项卡中不起作用

来自分类Dev

Swift拖放在Xcode之外不起作用

来自分类Dev

jQuery UI拖放在移动设备上不起作用

来自分类Dev

角度拖放在移动设备上不起作用

来自分类Dev

Jqgrid拖放在平板电脑中不起作用

来自分类Dev

html 5拖放在移动屏幕上不起作用

来自分类Dev

在Aurelia中拖放不起作用

来自分类Dev

在景观中拖放图像不起作用

来自分类Dev

在景观中拖放图像不起作用

来自分类Dev

Selenium ActionDriver.click在Firefox中不起作用

来自分类Dev

Selenium 2.53或2.48在Firefox 48.0中不起作用

来自分类Dev

jsp autocomplete =“ off”在Chrome或Firefox中不起作用

来自分类Dev

angularjs ng-blur在Chrome或Firefox中不起作用

来自分类Dev

XSLT名称空间别名在Firefox或Chrome中不起作用

来自分类Dev

Webfont在Chrome和Firefox中不起作用

来自分类Dev

Ajax在Chrome,Firefox和Opera中不起作用

来自分类Dev

jsp autocomplete =“ off”在Chrome或Firefox中不起作用

来自分类Dev

angularjs ng-blur在Chrome或Firefox中不起作用