上期講到了Selenium 4.0 Alpha更新日志,這次來實踐一下更新內容。
- DevTools操作更加方便。
- Chrome錄制更加方便。(未實踐)
- 窗口管理不在依賴一個driver。
- 相對定位器功能豐富。
- 補充全屏快照的功能。
ChromiumDriver和DevTools:
在Selenium 3中,EdgeDriver和ChromeDriver具有從RemoteWebDriver類繼承的自己的實現。在Selenium 4中,Chromedriver和EdgeDriver繼承自ChromiumDriver。ChromiumDriver類具有預定義的方法來訪問開發工具。考慮下面的代碼片段
//創建驅動drive
WebDriver driver = new ChromeDriver();
Connection connection = null;
DevTools devtools = new DevTools(connection);
devtools.createSession();
String message = "chrome 瀏覽器測試Demo!";
driver.get("https:www.bing.cn");
//JS打印信息
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("console.log('" + message + " ' ) ;");
上面的代碼創建到給定URL的會話,並執行javascript打印消息。DevTools是一個類,具有用於獲取開發人員選項的方法的類。
DevTools還可以用於性能評估並獲取頁面加載時間。
更好的窗口和標簽管理
Selenium 4現在具有可以同時在兩個不同的窗口上工作的功能。當我們要導航到新窗口(或選項卡)並在那里打開另一個URL並執行某些操作時,此功能特別有用。
WebDriver window2 = driver.switchTo().newWindow(WindowType.TAB);
window2.get("url");
WebDriver window1 = driver.switchTo().newWindow(WindowType.WINDOW);
window1.get("url");
newWindow()
方法根據其參數中指定的WindowType打開一個新窗口或選項卡。
相對定位器
在Selenium 4 alpha版本中,我們還可以獲得相對於任何其他定位器的定位器。
toLeftOf()
:位於指定元素左側的元素。
toRightOf()
:位於指定元素右側的元素。
above()
:相對於指定元素位於上方的元素。
below()
:相對於指定元素位於下方的元素。
near()
:元素距離指定元素最多50個像素。像素值可以修改。
全屏快照
現在,我們可以在Firefox中使用getFullPageScreenshotAs()
方法獲取完整的屏幕截圖。但是,我們無需將其類型轉換為TakesScreenshot
界面,而是需要將其類型轉換為FirefoxDriver實例。
File src = ((FirefoxDriver) driver).getFullPageScreenshotAs(OutputType.FILE);
可能會有一些更有趣的功能和改進,因此繼續探索!
- 鄭重聲明:文章禁止第三方(騰訊雲除外)轉載、發表,事情原委測試窩,首頁抄我七篇原創還拉黑,你們的良心不會痛嗎?
技術類文章精選
- java一行代碼打印心形
- Linux性能監控軟件netdata中文漢化版
- 接口測試代碼覆蓋率(jacoco)方案分享
- 性能測試框架第二版
- 如何在Linux命令行界面愉快進行性能測試
- 圖解HTTP腦圖
- 將swagger文檔自動變成測試代碼
- 五行代碼構建靜態博客
- 基於java的直線型接口測試框架初探