首页 > 解决方案 > Selenium - DragAndDropBy 无法在 Mac Os Hi Sierra 上的 Safari 12.1 上运行

问题描述

我正在尝试在 Mac Os Hi Sierra 上的 Safari 12.1 上拖放一个对象。

它拖动对象,移动到指定位置,但不释放对象。

我执行了下面提到的代码行,但它们都具有相同的效果:

actionTest.dragAndDropBy(dragMe,
xCoOrdinate,yCoOrdinate).build().perform();

actionTest.dragAndDropBy(dragMe,
xCoOrdinate,yCoOrdinate).release().build().perform();

如果我需要设置任何浏览器功能,请告知。

使用的测试网址是: https ://www.bryntum.com/examples/scheduler/animations/

请参见

标签: javaseleniumselenium-webdriversafari

解决方案


拖放的语法。Actions 类有两种支持拖放的方法。让我们研究它们-

Actions.dragAndDrop(Sourcelocator, Destinationlocator)

在某些应用程序中,我们可能会遇到将项目从一个位置自动拖放到另一个位置的情况。我们无法使用基本元素来实现这些。Selenium 提供了一个“<strong>Actions”类来处理这种情况。我们使用 Actions 类克服了这种情况,例如拖放。

Selenium 中的动作类

dragAndDrop方法中,我们传递了两个参数 -

第一个参数“Sourcelocator”是我们需要拖动的元素。

第二个参数“Destinationlocator”是我们需要在其上放置第一个元素的元素

Actions.dragAndDropBy(Sourcelocator, x-axis pixel of Destinationlocator, y-axis pixel of Destinationlocator)

dragAndDropBy 方法我们传递了 3 个参数 -

  1. 第一个参数“Sourcelocator”是我们需要拖动的元素。
  2. 第二个参数是我们需要在其上放置第一个元素的第二个元素的 x 轴像素值。
  3. 第三个参数是我们需要在其上放置第一个元素的第二个元素的 y 轴像素值。

您还可以从该站点获得更多信息。

尝试这个:-

    WebDriver driver= new FirefoxDriver();
    driver.get("https://www.bryntum.com/examples/scheduler/animations/");
    //driver.get("https://demoqa.com/droppable/");
    WebElement From=driver.findElement(By.xpath("//*[@id=\"b-scheduler-8-1-1-x\"]/div"));   

    WebElement To=driver.findElement(By.xpath("//*[@id=\"b-subgrid-14\"]/div[2]/div")); 
    Actions act=new Actions(driver);                    

    //Dragged and dropped.      
         act.dragAndDrop(From, To).build().perform();   

希望它对你有用..

对于没有这样的元素,请通过链接。


推荐阅读