我正在尝试使用Selenium for Java在HTML5中执行拖放操作。为此目的,Action
个对象不能used。
我试过了,但现在我被困住了:
@driver.execute_script(dnd_javascript+"$('#column-a').simulateDragDrop({ dropTarget: '#column-b'});")
参与拖放的两个元素都是动态的。我需要根据它们的位置为这两个元素生成动态XPath。
如何将值传递给JavaScript代码?
答案 0 :(得分:0)
执行此操作的方法是将占位符放入javascript String中,然后将元素作为varargs参数提供给JavascriptExecutor的executeScript。例如:
WebDriver driver = ...;
WebElement dragged = ...;
WebElement dropArea = ...;
((JavascriptExecutor) driver).executeScript("$(arguments[0]).simulateDragDrop({ dropTarget: arguments[1]});", dragged, dropArea);
答案 1 :(得分:-1)
您可以将Actions类用于此目的。
Actions objActions = new Actions(objWebDriver);
objActions.dragAndDrop(objWebDriver.findElement(By.xpath("expression1")), objWebDriver.findElement(By.xpath("expression2")));