如何把一個元素拖放到另一個元素里面 的時候,用到了一個Actions類。這一節主要分析一下這個Actions類。
這個actions類,主要定義了一些模擬用戶的鼠標mouse,鍵盤keyboard操作。對于這些操作,使用perform()方法進行執行。
actions類可以完成單一的操作,也可以完成幾個操作的組合。
單一的操作
單一的操作是指鼠標和鍵盤的一個操作。如鼠標左鍵按下、彈起或輸入一個字符串等。
前面涉及到鼠標鍵盤操作的一些方法,都可以使用actions類中的方法實現,比如:click,sendkeys。
WebElement element = dr.findElement(By.id("test"));
WebElement element1 = dr.findElement(By.id("test1"));
element.sendKeys("test");
element1.click;
用Actions類就可以這樣實現:
//新建一個action
Actions action=new Actions(driver);
//操作
WebElement element=dr.findElement(By.id("test"));
WebElement element1=dr.findElement(By.id("su"));
action.sendKeys(element,"test").perform();
action.moveToElement(element1);
action.click().perform();
看起來用Actions類實現click和sendKeys有點煩索組合操作
組合操作就是幾個動作連在一起進行操作。如對一個元素的拖放。
(new Actions(dr)).dragAndDrop(dr.findElement(By.id(item)), target).perform();
可以直接調用dragAndDrip()方法,也可以像下面濱示的一樣把幾個操作放一起實現
Action dragAndDrop = builder.clickAndHold(someElement)
.moveToElement(otherElement)
.release(otherElement)
.build().perform();
其他鼠標或鍵盤操作方法可以具體看一下API里面的org.openqa.selenium.interactions.Actions類