java - 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/
解决方案
拖放的语法。Actions 类有两种支持拖放的方法。让我们研究它们-
Actions.dragAndDrop(Sourcelocator, Destinationlocator)
在某些应用程序中,我们可能会遇到将项目从一个位置自动拖放到另一个位置的情况。我们无法使用基本元素来实现这些。Selenium 提供了一个“<strong>Actions”类来处理这种情况。我们使用 Actions 类克服了这种情况,例如拖放。
在dragAndDrop方法中,我们传递了两个参数 -
第一个参数“Sourcelocator”是我们需要拖动的元素。
第二个参数“Destinationlocator”是我们需要在其上放置第一个元素的元素
Actions.dragAndDropBy(Sourcelocator, x-axis pixel of Destinationlocator, y-axis pixel of Destinationlocator)
dragAndDropBy 方法我们传递了 3 个参数 -
- 第一个参数“Sourcelocator”是我们需要拖动的元素。
- 第二个参数是我们需要在其上放置第一个元素的第二个元素的 x 轴像素值。
- 第三个参数是我们需要在其上放置第一个元素的第二个元素的 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();
希望它对你有用..
对于没有这样的元素,请通过此链接。
推荐阅读
- javascript - 从对象获取值时, unshift() 会更改源对象吗?
- blazor-server-side - 使用元数据类时 Blazor 验证不起作用
- spring-boot - 如何使用 Spring elasticsearch 合并来自两个不同索引的文档
- java - 在我准备好退出之前,我如何才能留在一个 Java 类中
- firebase - Flutter Firestore,如何在数组中添加对象列表
- bixby - 有什么方法可以将 Bixby 段落文本中的单个单词加粗或斜体?
- android - Kotlin:单击时如何更改按钮的文本和颜色?
- java - 是否可以编写一个 Java 接口,您可以从中创建一个匿名类,但不能为其创建 lambda 表达式?
- html - 为什么 `filter: drop-shadow(...);` 的扩展半径属性不起作用?
- javascript - 如何在 javascript 中检查 p12 文件中证书的有效性?