使用Xunit与C#在Playwright中获取元素文本并断言的方法
在Xunit + C#的Playwright中获取元素文本并断言的两种方法
方法一:获取文本后用Xunit原生Assert
Playwright的Locator没有直接的Text属性,但可以通过两个异步方法获取文本:
InnerTextAsync():获取元素的可见文本,和Selenium的Text属性行为一致TextContentAsync():获取元素的所有文本(包括隐藏内容)
代码示例:
var userButton = page.Locator("button.user-icon"); // 获取可见文本,对应Selenium的Text var buttonVisibleText = await userButton.InnerTextAsync(); // 用Xunit原生断言 Assert.Equal("testString", buttonVisibleText); // 如果需要获取包含隐藏内容的文本,用TextContentAsync // var buttonFullText = await userButton.TextContentAsync(); // Assert.Equal("testString", buttonFullText);
方法二:使用Playwright适配Xunit的断言API
你提到的Expect是Nunit专属的,Xunit中需要通过PlaywrightAssertions类调用Playwright的断言方法,步骤如下:
- 引入命名空间:
using Microsoft.Playwright.Assertions; - 通过
PlaywrightAssertions.Expect()创建断言对象
代码示例:
var userButton = page.Locator("button.user-icon"); await PlaywrightAssertions.Expect(userButton).ToHaveTextAsync("testString");
注意:
ToHaveTextAsync()默认匹配可见文本,和InnerTextAsync()行为一致;如果需要匹配包含隐藏内容的文本,可以传入选项:ToHaveTextAsync("testString", new() { IncludeHidden = true })
内容的提问来源于stack exchange,提问作者bobe_b
相关产品推荐
相关产品推荐

