Selenium 4.0 Alpha更新實踐


上期講到了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);

可能會有一些更有趣的功能和改進,因此繼續探索!


技術類文章精選

非技術文章精選


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM