java + selenium測試框架(之上傳下載) 版本演化五-二
在web項目中,上傳和下載控件有的使用插件進行了封裝,插件中甚至包含flash等。有的則做的比較簡單,使用selenium的鍵盤事件輔助就能搞定。
在之前的版本中,採用了 AutoIt 工具來輔助控制彈出的對話框。其實,因爲彈出框會自動的把焦點放到,保存,確定,這樣的控件上,所以可以使用鍵盤事件來控制。
整理了網上的兩種上傳的方法(selenium的使用,哪個好使,還要自己試一試):
方法一
driver.findElement(By.xpath("//input[@type='file']"))).sendKeys("C:\\testContent.pdf");
方法二
最開始的輸入是點擊頁面上的“上傳”按鈕,這樣就可以打開“File Upload”輸入框。
Actions action = new Actions(driver);
//IE下雙擊,FF下單擊..
action.doubleClick(driver.findElements(By.xpath("//input[@type='file']")).get(0));
action.perform();
然後將文件的路徑存到剪貼板上:
public void setClipboardData(String string) {
StringSelection stringSelection = new StringSelection(string);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
}
最後利用鍵盤事件Ctrl + V,粘貼文件路徑,再按回車關掉File Upload輸入框。
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);