最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何使用Playwright對(duì)Java API實(shí)現(xiàn)自動(dòng)視覺(jué)測(cè)試

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

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

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

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

如何安裝Playwright Java

Playwright入門的第一步是將依賴項(xiàng)添加到您的項(xiàng)目中。您可以從Maven存儲(chǔ)庫(kù)中獲得Playwright客戶端。我創(chuàng)建了一個(gè)新的pom.xml文件,并添加了playwright依賴項(xiàng)。

<?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是一種瀏覽器自動(dòng)化工具,不一定限于測(cè)試框架。實(shí)際上,它們都不提供任何斷言方法。因此,您還需要添加一個(gè)斷言庫(kù)。對(duì)于此示例,我將使用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中啟動(dòng)瀏覽器

Playwright 允許您創(chuàng)建特定類型的瀏覽器對(duì)象。選項(xiàng)包括Chromium(基于Chrome和Edge),F(xiàn)irefox和WebKit(基于Safari引擎)。使用此Browser 對(duì)象,可以使用launch()方法啟動(dòng)瀏覽器實(shí)例。

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();
    }
}

默認(rèn)情況下,Playwright以無(wú)頭模式啟動(dòng)瀏覽器,這意味著您實(shí)際上不會(huì)看到測(cè)試執(zhí)行。如果您希望瀏覽器打開(kāi),則可以通過(guò)傳入LaunchOption禁用無(wú)頭模式:

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

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

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

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

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

為了與Web元素進(jìn)行交互,Page Object類將需要訪問(wèn)我們?cè)谏厦鎰?chuàng)建的Playwright Page對(duì)象。同樣,這與我們將Selenium WebDriver對(duì)象傳遞給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;
    }
}

我要添加到此類的第一個(gè)方法是search(),它將接收文本并將其輸入到文本字段中。這樣做的方法是fill(),它使用一個(gè)定位符和您想要輸入的文本到字段中。您可以在第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對(duì)Java API實(shí)現(xiàn)自動(dòng)視覺(jué)測(cè)試的詳細(xì)內(nèi)容,更多關(guān)于Playwright對(duì)Java API實(shí)現(xiàn)自動(dòng)視覺(jué)測(cè)試的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解spring boot starter redis配置文件

    詳解spring boot starter redis配置文件

    spring-boot-starter-Redis主要是通過(guò)配置RedisConnectionFactory中的相關(guān)參數(shù)去實(shí)現(xiàn)連接redis service。下面通過(guò)本文給大家介紹在spring boot的配置文件中redis的基本配置,需要的的朋友參考下
    2017-07-07
  • 詳解Java?@Documented注解的作用

    詳解Java?@Documented注解的作用

    @Documented和@Deprecated注解長(zhǎng)得有點(diǎn)像,@Deprecated是用來(lái)標(biāo)注某個(gè)類或者方法不建議再繼續(xù)使用,@Documented只能用在注解上,本文將通過(guò)示例詳細(xì)說(shuō)說(shuō)@Documented注解的作用,需要的可以參考一下
    2022-09-09
  • springboot下實(shí)現(xiàn)RedisTemplate?List?清空

    springboot下實(shí)現(xiàn)RedisTemplate?List?清空

    我們經(jīng)常會(huì)使用Redis的List數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)一系列的元素,當(dāng)我們需要清空一個(gè)List時(shí),可以使用RedisTemplate來(lái)實(shí)現(xiàn),本文就來(lái)詳細(xì)的介紹一下如何實(shí)現(xiàn),感興趣的可以了解一下
    2024-01-01
  • 使用spring-data-redis中的Redis事務(wù)

    使用spring-data-redis中的Redis事務(wù)

    這篇文章主要介紹了使用spring-data-redis中的Redis事務(wù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Spring Gateway動(dòng)態(tài)路由的實(shí)現(xiàn)方案

    Spring Gateway動(dòng)態(tài)路由的實(shí)現(xiàn)方案

    Spring Cloud Gateway (下文簡(jiǎn)稱 Gateway)作為微服務(wù)網(wǎng)關(guān),動(dòng)態(tài)配置路由是剛需,畢竟沒(méi)人想路由一改就要重啟網(wǎng)關(guān),本文結(jié)合源碼,提供一種動(dòng)態(tài)路由配置的思路,需要的朋友可以參考下
    2025-09-09
  • java高并發(fā)InterruptedException異常引發(fā)思考

    java高并發(fā)InterruptedException異常引發(fā)思考

    這篇文章主要為大家介紹了java高并發(fā)InterruptedException異常引發(fā)思考,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Java使用Graphics2D繪制SVG和PNG的方法

    Java使用Graphics2D繪制SVG和PNG的方法

    Java提供了許多圖形處理類和方法,如Graphics2D、AffineTransform、Stroke等,這些都可以用于繪制SVG圖像,Graphics2D是Java中用于繪制2D圖形的類,本文給大家介紹如何使用Graphics2D繪制SVG和PNG,需要的朋友可以參考下
    2023-06-06
  • maven如何利用springboot的配置文件進(jìn)行多個(gè)環(huán)境的打包

    maven如何利用springboot的配置文件進(jìn)行多個(gè)環(huán)境的打包

    這篇文章主要介紹了maven如何利用springboot的配置文件進(jìn)行多個(gè)環(huán)境的打包,在Spring Boot中多環(huán)境配置文件名需要滿足application-{profiles.active}.properties的格式,其中{profiles.active}對(duì)應(yīng)你的環(huán)境標(biāo)識(shí),本文給大家詳細(xì)講解,需要的朋友可以參考下
    2023-02-02
  • eclipse上配置Maven的圖文教程(推薦)

    eclipse上配置Maven的圖文教程(推薦)

    下面小編就為大家分享一篇eclipse上配置Maven的圖文教程(推薦),具有很好的參考價(jià)值。希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • MyBatis處理CLOB/BLOB類型數(shù)據(jù)以及解決讀取問(wèn)題

    MyBatis處理CLOB/BLOB類型數(shù)據(jù)以及解決讀取問(wèn)題

    這篇文章主要介紹了MyBatis處理CLOB/BLOB類型數(shù)據(jù)以及解決讀取問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04

最新評(píng)論

兴业县| 绍兴市| 绍兴县| 宾川县| 桑日县| 祁门县| 原平市| 平原县| 循化| 平远县| 临湘市| 崇文区| 海原县| 天水市| 闽侯县| 浦城县| 榆林市| 温州市| 河南省| 漳平市| 慈利县| 抚远县| 望都县| 贵阳市| 兴国县| 达尔| 搜索| 淮安市| 泽普县| 宜春市| 上犹县| 深水埗区| 简阳市| 大关县| 禹州市| 延边| 通山县| 扬中市| 乐陵市| 溧水县| 沙坪坝区|