java - 无法让 Selenium 拖放测试工作(Java)
问题描述
我正在尝试在 Java 中执行 Selenium 的 dragAndDrop 函数。现在,我正在测试这个页面。它包含一个图像和两个 div:
我现在正在尝试测试将图像拖动到绿色 div。我能够想出这个Java代码:
public static void main(String args[]) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://localhost:8012/dragTest/dragAndDropTest.html");
Thread.sleep(1000);
driver.manage().timeouts().implicitlyWait(2000, TimeUnit.SECONDS);
//Element to be dragged
driver.findElement(By.xpath("//*[@id=\"drag1\"]")).click();
WebElement from = driver.findElement(By.xpath("//*[@id=\"drag1\"]"));
//Element to drag to
WebElement to = driver.findElement(By.xpath("//*[@id=\"div1\"]"));
//Use Action class for drag and drop
Actions builder = new Actions(driver);
//Drag and drop drag1 to div1
builder.dragAndDrop(from, to).perform();
builder.build();
}
我能够运行测试,但没有任何反应。我添加了控制台日志来测试代码是否在拖动之前点击了图像,并且有效(点击有效),只是图像没有被拖动。
我环顾四周寻求帮助,并注意到很多拖放 Selenium 代码看起来像这样。所以我不确定我哪里出错了。
解决方案
代替 :
builder.dragAndDrop(from, to).perform();
builder.build();
尝试:
builder.dragAndDrop(from, to).build().perform();
我认为这应该有效。
推荐阅读
- c - 在 c 中创建和连接套接字:绑定和连接错误
- javascript - 如何将包含单引号的有效 JSON 插入 MySQL
- javascript - 如何从我的初始页面转到带有 HTML 的新 html 页面
- c++ - 模拟静态函数成员
- scala - sbt run 仅在我选择类时才起作用,而不是在我将其作为参数传递时
- python - 从可用数据结构生成二元决策图
- listview - 删除嵌套属性中的元素时更新 SwiftUI 列表
- python - (Python noob)将一串数字添加到列表时,它被分成数字
- flask - 使用线程运行 gunicorn
- ios - 设置 UIImage 颜色