Playwright runsettings不生效:Headless设为False仍以无头模式运行
问题描述
我有一个包含runsettings文件的Playwright测试解决方案,通过VS Code测试资源管理器运行Test2时,该测试仍以无头模式运行,似乎忽略了根目录下创建的test.runsettings配置文件。同一解决方案中的Test1通过在类中显式设置BrowserTypeLaunchOptions(未使用PageTest基类),可正常以Chrome浏览器运行。相关代码与配置如下:
Test2类代码
using Microsoft.Playwright; using Microsoft.Playwright.NUnit; namespace Playwright_.NET; public class NUnitPlaywright : PageTest { [SetUp] public async Task Setup() { await Page.GotoAsync(url: "http://www.eaapp.somee.com"); } [Test] public async Task Test1() { await Page.ClickAsync(selector: "text=Login"); await Page.ScreenshotAsync(new PageScreenshotOptions { Path = "../../../Screenshots/EAApp.jpg" }); await Page.FillAsync(selector: "#UserName", value: "admin"); await Page.FillAsync(selector: "#Password", value: "password"); await Page.ClickAsync(selector: "text=Log in"); await Page.ScreenshotAsync(new PageScreenshotOptions { Path = "../../../Screenshots/Login Assertion.jpg" }); await Expect(Page.Locator(selector: "text='Employee Details'")).ToBeVisibleAsync(); } }
test.runsettings文件
<?xml version="1.0" encoding="utf-8"?> <RunSettings> <!-- Configurations that affect the Test Framework --> <RunConfiguration> <EnvironmentVariables> <!-- For debugging selectors, it's recommend to set the following environment variable --> <DEBUG>pw:api</DEBUG> </EnvironmentVariables> </RunConfiguration> <!-- Playwright --> <Playwright> <BrowserName>chromium</BrowserName> <ExpectTimeout>5000</ExpectTimeout> <LaunchOptions> <Headless>false</Headless> <Channel>chrome</Channel> </LaunchOptions> </Playwright> <!-- NUnit adapter --> <NUnit> <NumberOfTestWorkers>24</NumberOfTestWorkers> </NUnit> </RunSettings>
Test1类代码
using Microsoft.Playwright; namespace Playwright_.NET; public class Tests { [SetUp] public void Setup() { } [Test] public async Task Test1() { //Prepare Playwright driver using var playwright = await Playwright.CreateAsync(); //Launch Browser (not in headless mode) await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions() { Headless = false }); //Navigate to page var page = await browser.NewPageAsync(); //NewPageAsync - Convenience api. Frameworks should create IBrowser.NewContextAsync(BrowserNewContextOptions) await page.GotoAsync(url: "http://www.eaapp.somee.com"); //Click login await page.ClickAsync(selector: "text=Login"); //Take Screenshot of login page (current view) await page.ScreenshotAsync(new PageScreenshotOptions { Path = "../../../Screenshots/EAApp.jpg" }); //Input login details and click Log in button await page.FillAsync(selector: "#UserName", value: "admin"); await page.FillAsync(selector: "#Password", value: "password"); await page.ClickAsync(selector: "text=Log in"); await page.ScreenshotAsync(new PageScreenshotOptions { Path = "../../../Screenshots/Login Assertion.jpg" }); //Assertion var isExist = await page.Locator(selector: "text='Employee Details'").IsVisibleAsync(); Assert.IsTrue(isExist); } }
内容的提问来源于stack exchange,提问作者Enzo
相关产品推荐
相关产品推荐

