You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 04:11:06