中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Playwright對Java API實現自動視覺測試

發布時間:2021-02-01 09:29:10 來源:億速云 閱讀:468 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關怎么使用Playwright對Java API實現自動視覺測試,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

微軟新的端到端瀏覽器自動化框架Playwright引起了轟動!僅在幾個月前,我才試玩了Playwright,當時它是一個僅JavaScript的框架,當得知語言支持已經擴展到我心愛的Java以及Python和C#時,我感到非常驚喜。

借助額外的語言支持以及跨現代瀏覽器引擎Chromium,Firefox和WebKit執行的能力,這使Playwright與Selenium WebDriver處于同一類別,成為所有需要交叉測試的Web測試人員(不僅是JS)的可行測試解決方案瀏覽器測試功能,適用于復雜的應用程序。

我喜歡通過實際使用框架來自動化現實場景來評估框架。因此,在本文中,我將與Playwright分享構建測試項目的步驟,其中包括Page Objects,還將Playwright步驟與Selenium WebDriver中的等效步驟進行比較。

如何安裝Playwright Java

Playwright入門的第一步是將依賴項添加到您的項目中。您可以從Maven存儲庫中獲得Playwright客戶端。我創建了一個新的pom.xml文件,并添加了playwright依賴項。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>angie.jones</groupId>
    <artifactId>playwright-java</artifactId>
    <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>com.microsoft.playwright</groupId>
           <artifactId>playwright</artifactId>
           <version>0.180.0</version>
       </dependency>
   </dependencies>
</project>

像Selenium WebDriver一樣,Playwright是一種瀏覽器自動化工具,不一定限于測試框架。實際上,它們都不提供任何斷言方法。因此,您還需要添加一個斷言庫。對于此示例,我將使用TestNG。

  <dependencies>
       <dependency>
           <groupId>com.microsoft.playwright</groupId>
           <artifactId>playwright</artifactId>
           <version>0.180.0</version>
       </dependency>

       <dependency>
           <groupId>org.testng</groupId>
           <artifactId>testng</artifactId>
           <version>7.3.0</version>
           <scope>test</scope>
       </dependency>
   </dependencies>

如何在Playwright中啟動瀏覽器

Playwright 允許您創建特定類型的瀏覽器對象。選項包括Chromium(基于Chrome和Edge),Firefox和WebKit(基于Safari引擎)。使用此Browser 對象,可以使用launch()方法啟動瀏覽器實例。

package base;

import com.microsoft.playwright.*;
import org.testng.annotations.BeforeClass;

public class BaseTests {

    private Browser browser;

    @BeforeClass
    public void setUp(){
        browser = Playwright
                .create()
                .chromium()
                .launch();
    }
}

默認情況下,Playwright以無頭模式啟動瀏覽器,這意味著您實際上不會看到測試執行。如果您希望瀏覽器打開,則可以通過傳入LaunchOption禁用無頭模式:

.launch(new BrowserType.LaunchOptions().withHeadless(false));

除了設置無頭模式外,LaunchOptions還提供了其他幾種方法,包括設置環境變量和打開Chromium開發工具的方法。

如何在Playwright中啟動網站

現在我們有了瀏覽器,可以加載測試中的應用程序– Automation Bookstore。為此,我們需要一個Page對象–與Selenium中的WebDriver對象相似。要創建Page對象,請在第8行上調用browser.newPage()。它表示瀏覽器窗口中的單個選項卡。有了這個對象,我們就可以導航到我們的URL(第9行)。

  @BeforeClass
    public void setUp(){
        browser = Playwright
                .create()
                .chromium()
                .launch(new BrowserType.LaunchOptions().withHeadless(false));

        Page page = browser.newPage();
        page.navigate("https://automationbookstore.dev/");
    }

如何在Playwright中創建頁面對象

 我們已經在瀏覽器中加載了應用程序,現在我們想使用Page Object Model設計模式來創建一個Java類,該Java類代表應用程序的Search頁面。

為了與Web元素進行交互,Page Object類將需要訪問我們在上面創建的Playwright Page對象。同樣,這與我們將Selenium WebDriver對象傳遞給Page Object類以便它們可以執行瀏覽器交互方法的方式類似。

Page page = browser.newPage();
        page.navigate("https://automationbookstore.dev/");
        SearchPage searchPage = new SearchPage(page);
package pages;

import com.microsoft.playwright.Page;

public class SearchPage {

    private Page page;
  
    public SearchPage(Page page){
        this.page = page;
    }
}

我要添加到此類的第一個方法是search(),它將接收文本并將其輸入到文本字段中。這樣做的方法是fill(),它使用一個定位符和您想要輸入的文本到字段中。您可以在第11行看到調用。

public class SearchPage {

    private Page page;
    private String locator_searchBar = "#searchBar";

    public SearchPage(Page page){
        this.page = page;
    }

    public void search(String query) {
        page.fill(locator_searchBar, query);
    }
}

關于“怎么使用Playwright對Java API實現自動視覺測試”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

班戈县| 红河县| 台东市| 延吉市| 福贡县| 晋城| 通海县| 广汉市| 孟州市| 闽侯县| 屏东县| 二连浩特市| 江安县| 新晃| 龙岩市| 吐鲁番市| 湖口县| 南漳县| 班戈县| 峨山| 兰西县| 南阳市| 荆门市| 巴塘县| 南澳县| 綦江县| 当阳市| 铜陵市| 扬州市| 金平| 防城港市| 宜章县| 西乌珠穆沁旗| 南投市| 寿阳县| 合作市| 双桥区| 靖江市| 茂名市| 锦州市| 安阳市|