您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)怎么使用Playwright對(duì)Java API實(shí)現(xiàn)自動(dòng)視覺(jué)測(cè)試,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
微軟新的端到端瀏覽器自動(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入門的第一步是將依賴項(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 允許您創(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ā)工具的方法。
現(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/"); }
我們已經(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); } }
關(guān)于“怎么使用Playwright對(duì)Java API實(shí)現(xiàn)自動(dòng)視覺(jué)測(cè)試”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。