亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

如何使用Playwright對Java API實現(xiàn)自動視覺測試

 更新時間:2021年01月30日 11:05:33   作者:banq  
這篇文章主要介紹了如何使用Playwright對Java API實現(xiàn)自動視覺測試,幫助大家更好的理解和使用Playwright,感興趣的朋友可以了解下

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

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

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

如何安裝Playwright Java

Playwright入門的第一步是將依賴項添加到您的項目中。您可以從Maven存儲庫中獲得Playwright客戶端。我創(chuàng)建了一個新的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 允許您創(chuàng)建特定類型的瀏覽器對象。選項包括Chromium(基于Chrome和Edge),F(xiàn)irefox和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以無頭模式啟動瀏覽器,這意味著您實際上不會看到測試執(zhí)行。如果您希望瀏覽器打開,則可以通過傳入LaunchOption禁用無頭模式:

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

除了設(shè)置無頭模式外,LaunchOptions還提供了其他幾種方法,包括設(shè)置環(huán)境變量和打開Chromium開發(fā)工具的方法。

如何在Playwright中啟動網(wǎng)站

現(xiàn)在我們有了瀏覽器,可以加載測試中的應(yīng)用程序– Automation Bookstore。為此,我們需要一個Page對象–與Selenium中的WebDriver對象相似。要創(chuàng)建Page對象,請在第8行上調(diào)用browser.newPage()。它表示瀏覽器窗口中的單個選項卡。有了這個對象,我們就可以導(dǎo)航到我們的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中創(chuàng)建頁面對象

 我們已經(jīng)在瀏覽器中加載了應(yīng)用程序,現(xiàn)在我們想使用Page Object Model設(shè)計模式來創(chuàng)建一個Java類,該Java類代表應(yīng)用程序的Search頁面。

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

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行看到調(diào)用。

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實現(xiàn)自動視覺測試的詳細內(nèi)容,更多關(guān)于Playwright對Java API實現(xiàn)自動視覺測試的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 帶你快速搞定java多線程(2)

    帶你快速搞定java多線程(2)

    這篇文章主要介紹了java多線程編程實例,分享了幾則多線程的實例代碼,具有一定參考價值,加深多線程編程的理解還是很有幫助的,需要的朋友可以參考下
    2021-07-07
  • Java中內(nèi)部類的概念與分類詳解

    Java中內(nèi)部類的概念與分類詳解

    一個類的定義放在另一個類的內(nèi)部,這個類就叫做內(nèi)部類,下面這篇文章主要給大家介紹了關(guān)于Java中內(nèi)部類的概念與分類的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-09-09
  • mybatis?plus更新字段為null處理方法

    mybatis?plus更新字段為null處理方法

    這篇文章主要為大家介紹了將mybatis?plus更新字段為null的處理方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-02-02
  • Spring Boot 讀取靜態(tài)資源文件的方法

    Spring Boot 讀取靜態(tài)資源文件的方法

    本篇文章主要介紹了Spring Boot 讀取靜態(tài)資源文件的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 利用5分鐘快速搭建一個springboot項目的全過程

    利用5分鐘快速搭建一個springboot項目的全過程

    Spring Boot的監(jiān)控能夠使開發(fā)者更好地掌控應(yīng)用程序的運行狀態(tài),下面這篇文章主要給大家介紹了關(guān)于如何利用5分鐘快速搭建一個springboot項目的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • java調(diào)用接口返回亂碼問題及解決

    java調(diào)用接口返回亂碼問題及解決

    這篇文章主要介紹了java調(diào)用接口返回亂碼問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java課程設(shè)計之坦克大戰(zhàn)

    java課程設(shè)計之坦克大戰(zhàn)

    這篇文章主要為大家詳細介紹了java課程設(shè)計之坦克大戰(zhàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • SpringBoot如何整合SpringDataJPA

    SpringBoot如何整合SpringDataJPA

    這篇文章主要介紹了SpringBoot整合SpringDataJPA代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • Eclipse引用XSD實現(xiàn)XML配置文件提示標簽的方法

    Eclipse引用XSD實現(xiàn)XML配置文件提示標簽的方法

    今天小編就為大家分享一篇關(guān)于Eclipse引用XSD實現(xiàn)XML配置文件提示標簽的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • java設(shè)計模式之外觀模式學(xué)習(xí)筆記

    java設(shè)計模式之外觀模式學(xué)習(xí)筆記

    這篇文章主要為大家詳細介紹了java設(shè)計模式之外觀模式學(xué)習(xí)筆記,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10

最新評論