1.webdriver對頁面文件的下載
我們一般操作瀏覽器下載時會讓我們選擇下載的目錄然后經過一系列操作后才進行文件下載操作,但是用webdriver不能按這樣的方式操作。經過查詢資料找到了如下的實現方式。首先在初始化瀏覽器對象時需要設置瀏覽器的配置文件。需要先配置browser.download.folderList設置為2,默認為0表示默認現在路徑,設置為2時是保存到指定目錄。browser.download.manager.showWhenStarting
這是設置是否顯示開始框用的,我們默認設置為false;browser.download.dir
這個是設置保存文件下載的位置,最后是最重的屬性:
browser.helperApps.neverAsk.saveToDisk,這是設置文件下載的類型的。
如果這個配置與所下載類型不符合的話,下載會出現問題。
具體實例如下:
firefoxprofile = new FirefoxProfile();
firefoxprofile.setPreference("browser.download.folderList", 2);
firefoxprofile.setPreference("browser.download.manager.showWhenStarting",false);
firefoxprofile.setPreference("browser.download.dir", "C:\\自動化");
firefoxprofile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream,"+ " application/vnd.ms-excel, text/csv, application/zip, application/exe");
driver = new FirefoxDriver(firefoxprofile);
2.webdriver實現文件上傳
一般在頁面上傳文件的插件會彈出一個選擇文件位置,這對於我們自動化測試來說是個難題。一般有兩種解決方法(1)使用autoit工具來模仿鼠標操作點擊頁面彈出來的插件選擇文件位置。該方法有個缺點就是極不穩定而且和屏幕分辨率有關,所以不多敘述(2)通過頁面元素找到插件位置,在input的標簽對中輸入文件所在位置來達到上傳文件的效果。下面就來仔細講解一下這方面我的個人見解。
首先我們需要頁面中定位到對應上傳文件的按鈕,
找到這個元素后使用sendKeys()的方法將你所需上傳文件的絕對路徑名輸入進去,就達到了選擇文件的目的。