Chrome拖放功能不适用于使用Selenium操作类的Canvas元素

时间:2017-07-11 06:28:58

标签: google-chrome selenium automation

我使用的是Selenium 2.53.1,Selenium Support Class 2.53.1和Chrome Version 59.0.3071.115以及Chrome Driver 2.30。似乎拖放操作不能在Chrome上运行,但在Firefox上工作。它一直工作到昨天,但突然它停止工作,我检查了一些升级是否已经破坏它的工作,但它似乎没有出现。以下是我的代码:

 public void DragAndDrop(IWebDriver driver, By source, By destination, int sourceX, int sourceY, int destinationX, int destinationY)
        {
            try
            {
                IWebElement sourceElement = FindElement(driver, source);
                IWebElement destinationElement = FindElement(driver, destination);
                Actions Actions = new Actions(driver);
                Actions.MoveToElement(sourceElement, sourceX, sourceY).ClickAndHold().Build().Perform();
                Actions.MoveByOffset(5, 0);
                Actions.MoveToElement(destinationElement, destinationX, destinationY).Release().Build().Perform();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }

2 个答案:

答案 0 :(得分:0)

检查sourceX和sourceY是否正确。

如果它们是正确的,请使用dragAndDropBy(sources,xInteger,yInteger)。

答案 1 :(得分:0)

与您的情况类似,我的脚本在一夜之间停止工作。 降级Chromedriver是一个临时解决方案。