如何获取Playwright for C#中Expect(locator).ToHaveValueAsync的布尔结果?
Playwright for C# 获取元素值匹配结果的布尔值方法
Playwright的Expect(locator).ToHaveValueAsync(value)是断言方法,它不会返回布尔值——匹配成功无返回,失败则直接抛出PlaywrightException异常。如果要得到true/false的判断结果,有两种常用方案:
方案一:直接使用Locator的HasValueAsync方法(推荐)
这是最直接的方式,HasValueAsync本身设计用来返回布尔值,判断元素当前值是否匹配指定内容:
// 直接获取布尔结果 bool isValueMatch = await locator.HasValueAsync("目标值");
方案二:用try-catch包裹断言方法
如果一定要基于Expect断言逻辑来获取结果,可以通过捕获异常的方式实现:
bool isValueMatch = false; try { await Expect(locator).ToHaveValueAsync("目标值"); isValueMatch = true; // 断言成功时设为true } catch (PlaywrightException) { isValueMatch = false; // 断言失败(抛出异常)时设为false }
注意:方案二更适合需要复用断言内置的等待、重试逻辑的场景,否则优先用方案一,代码更简洁高效。
内容的提问来源于stack exchange,提问作者PeterGol
相关产品推荐
相关产品推荐

