r-s*_*sal 49

有一个记录高级用户交互的页面; 这里有很多关于如何生成一系列动作的很好的例子, 你可以在这里找到它

// Configure the action
Actions builder = new Actions(driver);

builder.keyDown(Keys.CONTROL)
   .click(someElement)
   .click(someOtherElement)
   .keyUp(Keys.CONTROL);

// Then get the action:
Action selectMultiple = builder.build();

// And execute it:
selectMultiple.perform();   
Run Code Online (Sandbox Code Playgroud)

要么

Actions builder = new Actions(driver);

Action dragAndDrop = builder.clickAndHold(someElement)
   .moveToElement(otherElement)
   .release(otherElement)
   .build();

dragAndDrop.perform();
Run Code Online (Sandbox Code Playgroud)

  • 当你使用`.release(otherElement)`时,不需要`.moveToElement(otherElement)`吗? (2认同)

jos*_*yer 34

Selenium有很好的文档.以下是您要查找的API的特定部分的链接.

WebElement element = driver.findElement(By.name("source")); 

WebElement target = driver.findElement(By.name("target"));

(new Actions(driver)).dragAndDrop(element, target).perform();
Run Code Online (Sandbox Code Playgroud)

  • 总是喜欢从目标链接添加代码/示例,链接可能在不久的将来被更改/死亡,因此,答案可能对将来的用户无效.我现在已经添加了它. (3认同)
  • 为什么在 `(new Actions(driver))` 周围有额外的括号? (2认同)