如何使用Selenium Webdriver(Java)模拟拖动元素并将其拖放到输入框中?

时间:2018-12-27 22:35:24

标签: java selenium-webdriver

在Chrome,Firefox和IE等常见的浏览器中,将元素拖到输入框中(输入类型为“文本”)时:

  • 如果元素是图像(img href =“图像的URL”),则其href属性值将填充到输入框中;

  • 如果元素是文本元素(span,p ...),则其文本值将填充到输入框中。

我已经调用了硒webdriver的Java API来模拟操作,但是什么也没填。

Actions builder = new Actions(driver);

//use dragAndDrop
builder.dragAndDrop(source, target).perform();

//use moveToElement,clickAndHold,release
builder.moveToElement(source, 10, 10).clickAndHold(source);
builder.moveToElement(target, 10, 10).release(source).perform();

我尝试了许多方法来模拟相同的动作并期望获得相同的结果,似乎拖放动作是模拟的,但是我看不到填充动作。

1 个答案:

答案 0 :(得分:0)

尝试这种方式

WebElement sourceLocator = driver.findElement(By.xpath("xpath")); //get source locator

WebElement targetLocator = driver.findElement(By.xpath("xpath")); //get target locator

Actions action = new Actions(driver);

action.dragAndDrop(sourceLocator, targetLocator).build().perform(); //perform drag and drop (from(sourceLocator) -> to(targetLocator))