1.簡介
今天本來是要介紹遠程測試的相關內容的,但是宏哥在操作服務器的時候干了件糊塗的事,事情經過是這樣的:本來申請好的Windows服務器用來做演示的,可是服務器可能是局域網的,連百度都不能訪問,宏哥想調試一下網絡,禁用網卡,然后重啟網卡,結果禁用后就連不上了。。。。就只能等服務器分配的管理員在物理機操作了,他給我分配的估計是虛擬機的服務器。唉,不能演示了,那么宏哥就來介紹java+ selenium自動化測試截圖操作的實現,大致分為三篇,每篇介紹一種截圖方法,你喜歡那種就用那種。那么宏哥今天就介紹第一劍客-TakeScreenshout。
2.TakeScreenshout
TakeScreenshout是selenium工具自帶的截圖方法(截圖類),這個類主要是獲取瀏覽器窗體內的內容,不包括瀏覽器的菜單和桌面的任務欄區域,我們用百度首頁來截圖,看看截圖效果。
3.測試場景
具體步驟就是:
(1)訪問度娘首頁
(2)調用截圖類截圖
(3)保存截圖
4.自動化實戰
4.1代碼設計
FileUtils.copyFile(srcFile, new File("Screenshots", time + ".png"));“屏幕截圖”是我們自己創建的文件夾用來存放截圖文件,此文件夾在project(工程)的更目錄,如下圖所示:
當然也是可以設置保存到其他目錄下:FileUtils.copyFile(srcFile, new File("D:\\資料圖片", time + ".png"));
示例代碼如下圖所示:
4.2參考代碼
package lessons; import java.io.File; import java.io.IOException; import java.util.concurrent.TimeUnit; import java.text.SimpleDateFormat; import java.util.Calendar; import org.apache.commons.io.FileUtils; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; /** * @author 北京-宏哥 * * @公眾號:北京宏哥 * * @《手把手教你》系列技巧篇(六十)-java+ selenium自動化測試 - 截圖三劍客 -上篇(詳細教程) * * @2022年01月07日 */ public class TakeScreenshot { public static void main(String[] args) throws Exception { System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); driver.get("https://www.baidu.com"); Thread.sleep(1000); // 調用截圖方法 File src= ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); /** * 截屏操作 * 圖片已當前時間命名 */ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); //轉換時間格式 String time = dateFormat.format(Calendar.getInstance().getTime()); //獲取當前時間 try { // 拷貝截圖文件到我們項目./Screenshots FileUtils.copyFile(src, new File("Screenshots", time + ".png")); Thread.sleep(3000); System.out.println("browser will be close"); driver.quit(); }catch (IOException e){ System.out.println(e.getMessage()); } } }
4.3運行代碼
1.運行代碼,右鍵Run AS->Java Appliance,控制台輸出,如下圖所示:
2.文件保存結果及預覽,如下圖所示:
3.運行代碼后電腦端的瀏覽器的動作,如下小視頻所示:
5.小結
這個自帶的方法無論你建沒有建那個文件夾,如果有會將截圖放在文件夾下,如果沒有,會自動創建你代碼中的文件夾,然后將截圖放入。